为什么我不能在选择器上设置innerHTML?

fee*_*wet 0 jquery dom

在这个页面上:

<div id="myMessage">Text to change</div>
Run Code Online (Sandbox Code Playgroud)

以下将成功更改显示的文本:

document.getElementById("myMessage").innerHTML = "New text!";
Run Code Online (Sandbox Code Playgroud)

但使用div的选择器不会:

$("myMessage").innerHTML = "This text will not appear!";
Run Code Online (Sandbox Code Playgroud)

为什么?

Ben*_*enM 7

您在Sizzle查询中缺少ID选择器.但是,您正在尝试访问jQuery对象的DOM属性,这将无法正常工作.

你应该使用text()html():

$("#myMessage").text( "This text will not appear!" );
Run Code Online (Sandbox Code Playgroud)

如果你想使用.innerHTML,你可以使用get(),但那似乎没有意义,因为你可以使用document.getElementById()...

$('#myMessage').get(0).innerHTML = 'This text will not appear!';
// or
$('#myMessage')[0].innerHTML = 'This text will not appear!';
Run Code Online (Sandbox Code Playgroud)

最后,您还可以使用prop()如下:

$('#myMessage').prop('innerHTML', 'This text will not appear!');
Run Code Online (Sandbox Code Playgroud)