jQuery find - 它返回的元素是什么顺序?

时间:2012-01-07 17:10:57

标签: javascript jquery

我一直在使用jQuery的find方法,它非常有用。

但是,我遇到了一个例子,其中find似乎是重复的东西,而不是按照它们出现在文档中的顺序返回元素。 (我不确定是否应该这样做 - 我对此表示怀疑)。

但是,它确实不应该在找到的元素中出现重复并显示错误的顺序吗?

可在此处找到完整示例:jsFiddle - 请注意span [9]和span [10]的顺序是否错误并重复。

为什么会这样?

更新

更新以便将输出写入文档,请使用上面的新链接。

3 个答案:

答案 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 + ']')