[英]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.