簡體   English   中英

jQuery對象不起作用

[英]jQuery objects don't work

當我將jQuery對象存儲在變量中時,如下所示:

var $myObject = $("div#comments");

...我不能使用對象$ myObject!

這就是我正在做的改變div#comments的html:

$myObject.html(data);

它什么都不做。 我已經嘗試過這種方式了,這次選擇div里面的一個元素#comments:

$("div.comment", $myObject);

它不起作用。

我只是想在變量中保存一個元素然后使用它

注意:有些人不會在變量名之前加上$,如下所示:myObject。

你是在加載文件調用它嗎?

     // This will ensure that the code doesn't run until
     //    the document has loaded
$(function() {
    var $myObject = $("div#comments");
});

(這是jQuery的.ready()方法的快捷方式。)

只要文檔被加載,並且在加載時你在頁面上有一個帶有ID comments<div> ,它應該可以工作。

還要記住,頁面上只能有一個帶有任何給定ID的元素。 因此,實際上要做得更好(更快) $("#comments"); 而不是$("div#comments");

您只提供了代碼的snippits,因此無法確定,但可能性是您在<div>元素之前的<div> <script>元素中運行代碼並且不執行任何操作(例如使用ready事件)來延遲代碼的執行,直到div存在。

結果是你得到一個沒有找到元素的jQuery對象。 移動腳本元素,使其位於div之后。 就在身體的結束標簽之前是一個好地方。

語法完全有效,應該有效。 你是否動態附加評論div? 您應該alert( $myObject.length )以查看它是0還是1,如果它的0表示它從未被拾取。

您可能需要將var語句綁定到dom ready,window load或ajax callback之后。

好吧,這種語法非常好,所以其他的東西正在發生。 你能展示你的標記嗎? 如果添加警報($ myObject.length),你會得到什么? 最后要檢查一下......你是在一個准備就緒的處理程序中運行它嗎?

好的,謝謝大家。 我得到了解決方案。

我想到了在DOM中加載內容的順序並找到了解決方案。 問題(帶標記)是:

<div id="comments">    
    <script type="text/javascript">
    loadComments(params);
    </script>
</div>

上面的代碼是由PHP編寫的! 因此,只要瀏覽器讀取代碼,它就會執行該功能。 在調用函數之后,我已經嘗試將腳本放在頁面的末尾。 功能尚未定義。

因此,函數loadComments應該在div准備好之后執行並且在定義函數之后執行。

我使用.ready()在代碼之間包裝代碼,如下所示:

<script type="text/javascript">
$(function() {
    loadComments(params);
});
</script>

這是一種分心。 大家好! 非常感謝。

如果你遇到同樣的問題並且你不明白我做了什么,請問我。 XD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM