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