2017-02-22 85 views
0

在本页面:为什么我不能在选择器上设置innerHTML?

<div id="myMessage">Text to change</div> 

下面将成功改变显示的文本:

document.getElementById("myMessage").innerHTML = "New text!"; 

但使用div的选择并不:

$("myMessage").innerHTML = "This text will not appear!"; 

为什么?

+1

'$()'返回一个没有'.innerHTML'属性的类似数组的对象。你还需要修复你的选择器。 '$('#myMessage')[0] .innerHTML =“...”'。但是,你可以避免使用'.html()':'$('#myMessage')。html(“无论你想要什么”);'。这将是jQuery的方式。 –

+0

你的选择器是错误的 - 你也可以使用jquery函数来做这件事 - 例如'$(“#myMessage”)。html(“my msg”);' – ochi

回答

6

您错过了Sizzle查询中的ID选择器。但是,然后,你试图访问一个jQuery对象的DOM属性,这是行不通的。

您应该使用text()html()

$("#myMessage").text("This text will not appear!"); 

如果你想使用.innerHTML,您可以使用get(),但随后似乎并没有因为你不妨使用document.getElementById() ...

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

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

$('#myMessage').prop('innerHTML', 'This text will not appear!'); 
0

在jQuery中,您可以使用.html()。您的选择器也缺少ID为#

$(function() { 
 
    $("#myMessage").html("This text will not appear!"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="myMessage">Text to change</div>

+0

小心解释downvote? – APAD1

-1

如果你想使用innerHTML,因为jQuery的1.6版,您可以使用prop()方法

$("#myMessage").prop('innerHTML', 'This text will not appear!');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script> 
 
<div id="myMessage">Text to change</div>

3

试试这个:

$("#myMessage").html("This text will appear!"); 
+3

“请注册已发布的答案”...什么?只有有用的/质量好的答案应该被提高。 **这些都不是有用的。** –

+0

@KevinB是的,其中有几个已经在这个问题中了...你能告诉我我发布的答案是如何“没用”吗? – BenM

+0

发布此消息时,我没有看到您的答案。我从目前正在工作的项目中粘贴它。没有投票/降低你的答案。为什么你已经低估了它! @BenM –

相关问题