Сообщение от sergej_savelev
|
Странно, вроде бы как работает, но я не могу понять как. Что делает andSelf()? Вроде бы кода раз два и обчёлся а в голове хаос, неразбериха... Ещё не могу понять как :has() работает, даже догадаться не получается.
|
точнее, даже так:
$('h2').each(function (i) {
$(this).
css('color', 'red').
text('h2: ' + i).
parents('div:last').andSelf().
prev('h1, div:has(h1)').
text('h1: ' + i).
css('color', 'blue');
});
теперь поясню:
$('h2').each(function (i) {
$(this).
css('color', 'red').
text('h2: ' + i).
*!*
parents('div:last').andSelf().
*/!*
prev('h1, div:has(h1)').
text('h1: ' + i).
css('color', 'blue');
});
Эта строчка найдёт DIV на самом верхнем уровне вложенности, считая от
h2... (это не всё)
выделен жёлтым:
вот:
ещё:
и поместит в список к найденному элементу и сам элемент h2 (andSelf).
....
Далее,
$('h2').each(function (i) {
$(this).
css('color', 'red').
text('h2: ' + i).
parents('div:last').andSelf().
*!*
prev('h1, div:has(h1)').
*/!*
text('h1: ' + i).
css('color', 'blue');
});
Пройдётся по элементам предыдущей выборки (div на верхнем уровне, или сам h2) и найдёт предыдущий h1, или div, внутри которого есть h1
в инете есть документация по селектору has, и по всем методам ...