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

时间:2011-10-24 15:18:07

标签: javascript jquery

我正在页面上使用jQueryify书签,以便我可以从控制台调用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控制台中尝试过此操作。

5 个答案:

答案 0 :(得分:9)

使用方括号时,您不再使用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()

答案 1 :(得分:5)

看起来你正试图在DOM对象html上调用jQuery函数children[0]。尝试将其包装在jQuery对象中,然后调用html

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

答案 2 :(得分:5)

检查jQuery("li")[0].children[0]的结果,它是一个常规DOM对象而不是jQuery对象。没有看到你的HTML我不能推荐一个更好的选择器,但一个廉价和肮脏的修复将是

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

这会将DOM对象结果转换为具有.html()函数的jQuery对象。

答案 3 :(得分:3)

尝试以下

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();

答案 4 :(得分:3)

访问jquery对象上的数组元素(使用[])会返回一个DOMElement,它显然没有jquery的方法。您可能希望改为使用eq()