簡體   English   中英

控制台中的jQuery無法正常工作

[英]jQuery in console not working properly

我正在頁面上使用jQueryify bookmarklet,以便我可以從控制台調用jQuery函數。 但每次我在所選對象上調用jQuery函數時,都會收到錯誤:

"TypeError: jQuery("li")[0].children[0].html is not a function
[Break On This Error] jQuery('li')[0].children[0].html();

我在FireBug以及Google Chrome的Webkit控制台中嘗試過這個。

使用方括號時,您不再使用jQuery對象。

jQuery("li")[0]

這將返回第一個li作為DOMElement,而不是jQuery對象。

jQuery("li")[0].children[0]

這將第一個li的第一個子節點作為DOMElement返回,而不是jQuery對象。

.html()

此函數僅適用於jQuery對象。 對於DOMElements,您可以使用.innerHTML屬性。

我建議您不要處理DOMElements,而應繼續使用jQuery對象。 請嘗試使用此代碼:

jQuery('li').eq(0).children().eq(0).html()

看起來你試圖在DOM對象children[0]上調用jQuery函數html 嘗試將其包裝在jQuery對象中,然后調用html

var temp = jQuery("li")[0].children[0];
var html = jQuery(temp).html();

檢查jQuery("li")[0].children[0] ,它是一個常規DOM對象而不是jQuery對象。 沒有看到你的HTML我不能推薦一個更好的選擇器,但一個廉價和骯臟的修復將是

jQuery(jQuery('li')[0].children[0]).html();

這會將DOM對象結果轉換為具有.html()函數的jQuery對象。

試試以下

jQuery(jQuery("li")[0].children[0]).html();

或更好的一個

jQuery("li:eq(0)").children(':eq(0)').html();

或另一個

jQuery("li:eq(0)").children().eq(0).html();

即使這個也行

jQuery("li").eq(0).children().eq(0).html();

訪問jquery對象上的數組元素(使用[])會返回一個DOMElement,它顯然沒有jquery的方法。 您可能想要使用eq()

暫無
暫無

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

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