这个jQuery元素innerHTML语句有什么问题

What is wrong with this jQuery element innerHTML statement?

本文关键字:什么 问题 语句 innerHTML jQuery 元素 这个      更新时间:2023-09-26

在我的HTML页面中,我有一个span:

<span id="nlbNode">...</span>

在我的$(document).ready函数中,我有以下内容。

if (document.getElementById("nlbNode")) {
    document.getElementById("nlbNode").innerHTML = "A";
}

这很好,但是如果我这样做:

if (document.getElementById("nlbNode")) {
    $("#nlbNode").innerHTML = "A";
}

它不起作用。它什么都不做。甚至一个错误都没有。span的innerHTML保持不变。

那么,为什么它不起作用呢?

jQuery的Node元素没有innerHTML方法。如果您想使用innerHTML,您可以通过.get():检索元素的DOM对应项
$("#nlbNode").get(0).innerHTML = "A"

或者使用jQuery的.text()方法:

$("#nlbNode").text("A");

我假设,既然你说你包括

$(document).ready(function() {};

您在某个地方包含了jQuery。这意味着您可以.html()来获得结果。例如:

if (document.getElementById("nlbNode")) {
   $("#nlbNode").html("A");
}

编辑对不起,我忘了把剩下的答案包括在内。你现在可能已经知道了,尽管我会再说一遍。jQuery的节点中没有innerHtml方法,因为它不像其他框架那样返回DOM元素。