我試圖抓住「價值」這個div,這是可編輯的內部:爲什麼innerHTML返回'undefined'?
<div class="editable-div" contentEditable="true">Hey</div>
我想我可以簡單地通過JavaScript這樣做:
var changedText = $('.editable-div').innerHtml
然而,這個變量將始終返回「未定義」,這使我感到困惑。
有人能告訴我如何達到這個「價值」嗎?
我試圖抓住「價值」這個div,這是可編輯的內部:爲什麼innerHTML返回'undefined'?
<div class="editable-div" contentEditable="true">Hey</div>
我想我可以簡單地通過JavaScript這樣做:
var changedText = $('.editable-div').innerHtml
然而,這個變量將始終返回「未定義」,這使我感到困惑。
有人能告訴我如何達到這個「價值」嗎?
innerHtml
用於使用javascript選擇和你使用jQuery。所以用.html()
或.text()
函數替換innerHtml
。
使用此:
var changedText = $('.editable-div').html();
的innerHTML是DOM。嘗試$('。editable-div')[0] .innerHtml
一個jQuery包裝的對象實際上不是原始DOM節點,而是基本上是一個原始DOM節點的數組,可以用jQuery特定的方法來處理作爲.html()
。如果你想與DOM節點交互,可以通過列表或者迭代或得到該列表的元素,如果你知道它是哪一個檢索:
$('div').each(function(index, element) {
element.innerHTML // ...
}
$('div').get(0).innerHTML
$('div')[0].innerHTML
注意的是,雖然它是「一種「就像數組一樣,你可以使用$('div')[0]
的數組語法獲得DOM節點,你不能把它當作Javascript中的數組來對待。換句話說,你不能做到這一點:
$('div').forEach(function(element) {
element.innerHTML
}
您創建了一個jQuery對象。它沒有'innerHTML'屬性。你應該使用'html'方法來讀取幕後的'innerHTML'屬性! '$('。editable-div')。html()' – undefined 2015-04-03 16:03:25
@Vohuman謝謝,老兄! – Yeats 2015-04-03 16:07:17