我正在页面上使用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();
Run Code Online (Sandbox Code Playgroud)
我在FireBug以及Google Chrome的Webkit控制台中尝试过这个.
使用方括号时,您不再使用jQuery对象.
jQuery("li")[0]
Run Code Online (Sandbox Code Playgroud)
这将返回1st li作为DOMElement,而不是jQuery对象.
jQuery("li")[0].children[0]
Run Code Online (Sandbox Code Playgroud)
这将返回第一个li第一个子节点作为DOMElement,而不是jQuery对象.
.html()
Run Code Online (Sandbox Code Playgroud)
此函数仅适用于jQuery对象.对于DOMElements,您可以使用该.innerHTML属性.
我建议您不要处理DOMElements,而应继续使用jQuery对象.请尝试使用此代码:
jQuery('li').eq(0).children().eq(0).html()
Run Code Online (Sandbox Code Playgroud)
看起来你正试图html在DOM对象上调用jQuery函数children[0].尝试将其包装在jQuery对象中,然后调用html
var temp = jQuery("li")[0].children[0];
var html = jQuery(temp).html();
Run Code Online (Sandbox Code Playgroud)
检查结果jQuery("li")[0].children[0],它是一个常规DOM对象而不是jQuery对象.没有看到你的HTML我不能推荐一个更好的选择器,但一个廉价和肮脏的修复将是
jQuery(jQuery('li')[0].children[0]).html();
这会将DOM对象结果转换为具有该.html()功能的jQuery对象.