jQuery find – 它返回的元素是什么顺序?
我一直在使用jQuery的find
方法,它非常有用。
但是,我遇到了一个例子,其中find
似乎是重复的东西,而不是按照它们出现在文档中的顺序返回元素。 (我不确定是否应该这样做 – 我对此表示怀疑)。
但是,它不应该在它找到的元素中有重复并且显示错误的顺序,当然?
完整的例子可以在这里找到: jsFiddle – 注意span [9]和span [10]是如何排列错误并重复的。
为什么会这样?
更新
更新以便将输出写入文档,请使用上面的新链接。
.find()
以文档顺序返回元素。 更多信息: http : //docs.jquery.com/Release%3ajQuery_1.3.2
我认为exception与通配符选择器有关。 那些必要吗? 删除它们似乎解决了这个问题。
在代码中添加未使用的*,将此查找替换为您的代码:
$('#div1').find("*[class=w_line_" + i + "]").each(function () {
有这个,玩得开心;
我发现命令并不奇怪。
$(document).ready(function() { for (var i = 1; i <= 10; i++) { console.log(i); $('#div1').find("*[class*=w_line_" + i + "]").each(function() { console.log(i, $(this)); }); } });
这个选择器似乎以与你的顺序相同的顺序返回元素,我看不到任何重复。
$('#div1 *[class*=w_line_' + i + ']')