Ответ 1
Обратный вызов .each
передается индексом элемента и элементом:
$('div').each(function(i, el) {
// As a side note, this === el.
if (i % 2 === 0) { /* we are even */ }
else { /* we are odd */ }
});
Итак, я видел этот вопрос несколько минут назад на SO, и это заставило меня задуматься.
В основном у OP было что-то в этом роде
<div>a</div>
<div>b</div>
<div>c</div>
<div>d</div>
$('div').each( function() {
//do something different based on whether even or odd div
if ($(this) == ':even') {} //invalid markup I know!
else {}
});
Есть ли способ сообщить внутри .each()
, является ли текущий элемент нечетным или даже экземпляром?
Существует метод .filter
для jQuery, но он всегда возвращает true, когда он имеет один элемент.
Я также понимаю, что вы можете использовать селектор nth-child или установить его другими способами, но мне интересно узнать об этом конкретном случае.
Обратный вызов .each
передается индексом элемента и элементом:
$('div').each(function(i, el) {
// As a side note, this === el.
if (i % 2 === 0) { /* we are even */ }
else { /* we are odd */ }
});
$('div').each( function(index) {
//do something different based on whether even or odd div
if (index % 2 == 0) {} // even
else {} // odd
});
Если вы знаете, что все элементы являются дочерними элементами одного и того же родителя, вы можете использовать индекс, предоставляемый каждым
$('div').each( function(index) {
if (index%2 == 0) {}
else {}
});
в противном случае используйте функцию index, которая будет вычислять индекс элемента среди его братьев и сестер.
$('div').each( function() {
if ($(this).index()%2 == 0) {}
else {}
});
Использование JQuery api . (селектор)
$('div').each( function() {
//Check if element is even
if ($(this).is(":even")) {
}
//Check if element is odd
if ($(this).is(":odd")) {
}
});