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