Усі селектори jQuery повертають масив об'єктів. Чи завжди ці об’єкти мають той самий порядок, що і в HTML? Чи можу я на це покластися?
Усі селектори jQuery повертають масив об'єктів. Чи завжди ці об’єкти мають той самий порядок, що і в HTML? Чи можу я на це покластися?
Відповіді:
Так.
У примітках до випуску jQuery 1.3.2 сказано:
Елементи, повернені в порядку документу
Це зміна механізму селектора jQuery, який повторно впорядковує повернені результати у порядку документа, замість того порядку, в якому були передані селектори. Ця зміна була зроблена для того, щоб відповідати специфікації API Selectors (яка jQuery використовує всередині браузерів, які його підтримують).
Це було не так у jQuery 1.3 :
Порядок вибору стилів "a, b, c" може змінюватися. Браузери, що підтримують querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+), повертатимуть елементи в порядку документу, інші браузери (на даний момент) повертатимуть їх у вказаному порядку. У версії 1.3.2 та пізніших версіях усі селектори, розділені комами, будуть повернуті в порядку документу.
Можуть бути деякі винятки, наприклад з документації prevAll ():
"Враховуючи об'єкт jQuery, який представляє набір елементів DOM, метод .prevAll () здійснює пошук попередників цих елементів у дереві DOM і створює новий об'єкт jQuery з відповідних елементів; елементи повертаються в порядку, починаючи з найближчий брат чи сестра ".
Можливо, в тому порядку, в якому він їх знаходить, селектор в значній мірі проходить DOM, і коли він знаходить відповідний елемент, поміщає його в масив.
Можливо, ви можете зробити тест, скажімо 5 текстових полів з ідентифікаторами "textbox_n", де n - число, а потім попередити список і подивитися, що ви отримаєте?