Подтвердить что ты не робот

JQuery find - В каком порядке он возвращает элементы?

Я использую метод jQuery find, и это очень полезно.

Однако я столкнулся с примером, где find, казалось, дублировал вещи и не возвращал элементы в том порядке, в котором они появились в документе. (Я не уверен, что поиск должен сделать это, я сомневаюсь).

Однако, он не должен иметь дубликатов в найденных элементах и ​​не показывать неправильный порядок?

Полный пример можно найти здесь: jsFiddle - Обратите внимание, что диапазон [9] и диапазон [10] находятся в неправильном порядке и дублируется.

Почему это так?

Update

Обновлено так, что вывод записывается в документ, пожалуйста, используйте новую ссылку выше.

4b9b3361

Ответ 1

.find() возвращает элементы в порядке документа. Подробнее здесь: http://docs.jquery.com/Release%3ajQuery_1.3.2

Я думаю, что аномалия имеет какое-то отношение к селекторам. Это необходимо? Удаление их, похоже, решает проблему.

Ответ 2

вы добавляете неиспользованный * в свой код, замените это нахождение кодом:

$('#div1').find("*[class=w_line_" + i + "]").each(function () {

и иметь это, хорошо провести время;

Ответ 3

Я не могу найти ничего странного в заказе.

$(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 + ']')