【发布时间】:2011-11-01 19:58:00
【问题描述】:
如果我运行这段代码 -
var html= '<html><head></head><body><div class="bar"></div></body></html>';
console.log($(html).find('div'));
如果我运行此代码,我不会返回任何结果 -
var html= '<html><head></head><body><div><div class="bar"></div></div></body></html>';
console.log($(html).find('div'));
然后我得到一个返回的结果 - 内部 div (<div class="bar"></div>)。我本来希望第一个代码 sn-p 返回一个结果,第二个 sn-p 返回两个结果。
同样,此代码不返回任何结果 -
var code = $("<div id='foo'>1</div><div id='bar'>2</div>");
console.log(code.find('div'));
但此代码两次提醒“div”-
var code = $("<div id='foo'>1</div><div id='bar'>2</div>");
code.each(function() {
alert( this.nodeName );
})
鉴于第二个 sn-p 的结果,我本来希望第一个代码 sn-p 返回两个结果。有人可以解释为什么我会得到我得到的结果吗?
【问题讨论】:
-
我把
console.log改成了alert,它提醒了[object Object],所以它一定找到了什么…… -
@Eran Zimmerman:那是因为 jQuery 总是返回一个对象,不管为选择器找到多少匹配项。
-
我假设 [object Object] 指的是 jQuery 返回的空数组。
标签: javascript jquery jquery-selectors