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

时间:2015-11-03 02:01:50

标签: javascript jquery html

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

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

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

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

这样可行,但如果我这样做:

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

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

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

2 个答案:

答案 0 :(得分:3)

jQuery的Node元素没有innerHTML方法。如果您想使用innerHTML,可以通过.get()检索元素的DOM副本:

$("#nlbNode").get(0).innerHTML = "A"

或者使用jQuery&#39; .text()方法:

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

答案 1 :(得分:2)

我假设,因为你说你包括

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

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

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

修改 对不起,我忘记了其余的答案。你现在可能已经知道了,虽然我会再说一遍。 jQuery在其节点中没有innerHtml方法,因为它不会像其他框架一样返回DOM元素。