2017-02-22 84 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 –

相關問題