为什么innerHTML返回“未定义”

Why is innerHTML returning 'undefined'?

本文关键字:未定义 返回 innerHTML 为什么      更新时间:2023-09-26

我试图捕获这个div中的"值",这是可编辑的:

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

我想我可以简单地通过JavaScript来做到这一点:

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

但是,这个变量将始终返回"未定义",这让我感到困惑。

有人可以启发我如何达到这个"价值"吗?

它是 jQuery - 你必须使用:

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

一个 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
}

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

使用这个:

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

innerHtml is DOM. try $('.editable-div'([0].innerHtml