为什么innerHTML返回' undefined'?

时间:2015-04-03 16:01:19

标签: javascript jquery

我试图抓住这个div中的“值”,这是可编辑的:

<div class="editable-div" contentEditable="true">Hey</div>

我认为我可以通过JavaScript完成此操作:

var changedText = $('.editable-div').innerHtml

但是,此变量将始终返回“undefined”,这让我感到困惑。

有人可以告诉我如何达到这个“价值”吗?

4 个答案:

答案 0 :(得分:30)

这是jQuery - 您必须使用:

$('.editable-div').html()

答案 1 :(得分:3)

jQuery包装对象实际上不是原始DOM节点,但实际上是一个原始DOM节点数组,可以使用jQuery特定方法(例如.html())执行操作。如果要与DOM节点进行交互,可以通过迭代列表或获取该列表的元素(如果您知道它是哪一个)来检索它:

$('div').each(function(index, element) {
  element.innerHTML // ...
}

$('div').get(0).innerHTML
$('div')[0].innerHTML

请注意,虽然它是&#34;有点&#34;就像一个数组一样,你可以使用$('div')[0]的数组语法来获取DOM节点,你不能像Javascript中的数组一样对待它。换句话说,您无法执行此操作:

$('div').forEach(function(element) {
  element.innerHTML
}

答案 2 :(得分:1)

innerHtml与javascript选择器一起使用,您使用的是jQuery。所以用innerHtml.html()函数替换.text()

使用此:

var changedText = $('.editable-div').html();

答案 3 :(得分:0)

innerHtml是DOM。尝试$('。editable-div')[0] .innerHtml