ИГНОРИРУЙТЕ: http://jsfiddle.net/gulcoza/9cVFT/1/Цепные селекторы в JQuery: применить селектор в уже отфильтрованных результатов
ОБНОВЛЕНО FIDDLE:http://jsfiddle.net/gulcoza/9cVFT/4/
Весь код в приведенном выше скрипку, но я объясню здесь также:
HTML
<ul>
<li id="e1">1</li>
<li id="e2" class="hidden">2</li>
<li id="e3">3</li>
<li id="e4" class="hidden">4</li>
<li id="e5">5</li>
<li id="e6">6</li>
<li id="e7">7</li>
<li id="e8">8</li>
<li id="e9">9</li>
<li id="e10">10</li>
</ul>
jQuery
console.log(
$('ul li:visible:nth-child(4n)')
);
Мой ожидаемый результат:li#e6, li#e10
- почему? потому что я хочу, чтобы 4n-элементы были только из видимых.
Но
Фактический результат: я получаю 4n элемент из всех, только если они видны.
console.log(
$('ul li:visible').filter(function(index) {
if ((index + 1) % 4 ==0) return true;
})
);
Я заинтересован в любом приятное решение, чем следующему:
console.log(
$('ul li:visible').filter(function(index) {
if ((index + 1) % 4 ==0) return true;
})
);
ОБНОВЛЕНО FIDDLE:
http://jsfiddle.net/gulcoza/9cVFT/4/
Почему не номер 4 работы. На данный момент фильтр называется результатом, который должен быть уже отфильтрован, IMHO. : |
// 4 - could be a nice solution
console.log(
$('ul li:visible').filter(':nth-child(4n)')
);
Почему это не работает? В $('ul li:visible')
момент должен быть доступен только видимый.
': п-child' является по отношению к родителю элемент, а не выбор. Ваше использование 'filter' является подходящим решением, хотя вы можете захотеть поместить функцию в другом месте кода, чтобы ее можно было повторно использовать, если вы собираетесь называть ее несколько раз. – zzzzBov
cant i группировать их с помощью запятых или чего-либо еще .. не нашел ничего полезного в сети –
Что не так с вашим решением? Я думаю, что это лучшее решение. Как и @zzzzBov, вы должны снова использовать функцию для повторного использования. – Bill