Как выбрать первые N элементов с помощью jquery? - PullRequest
15 голосов
/ 18 июля 2011
<div class="nav-top">
<ul>
  <li class="tab1"><a href="/">test</a></li>
  <li class="tab2"><a href="#">test</a></li>
  <li class="tab3"><a href="#">test</a></li>
  <li class="navahead"><a href="#">test</a></li>
  <li class="navahead"><a href="#">test</a></li>
<li class="new"><a href="#">test</a></li>
</ul>
</div>

я хочу добавить onmouse over event к первым трем li (tab1, tab2, tab3). как написать условие if.

Ответы [ 6 ]

40 голосов
/ 18 июля 2011

Вам не нужен if - вы можете использовать селектор jQuery :lt()

$('ul li:lt(3)').mouseenter(function(){});

Обратите внимание, что индекс начинается с нуля, поэтому первые три - 0, 1 и 2

http://api.jquery.com/lt-selector/

5 голосов
/ 18 июля 2011

На самом деле, вам не нужно никаких условных выражений, вы можете сделать это с помощью одного селектора:

$('ul li:first').mouseenter(function() {
});

Если вы хотите дополнительно «отфильтровать» ваши <li> узлы, будьте более конкретны,как

$('ul li.navahead:first').mouseenter(function() {
});

обновление :

Чтобы ответить на ваш обновленный вопрос:

$('ul li[class^=tab]').mouseenter(function() {
});

^= выберет все имена классов, которые начинаются сзаданная строка (в данном случае "tab")

2 голосов
/ 18 июля 2011

Вам не нужно "если".Используйте селекторы

$("ul li:first")
0 голосов
/ 13 октября 2016

Вы можете использовать :nth-child(-n+{TARGET_NUMBER})

Используйте ul li:nth-child(-n+3) для выбора первых 3 элементов.

1007 * Е.Г. *

$('ul li:nth-child(-n+3)').mouseenter(function() {
    // your code goes here
});
0 голосов
/ 18 июля 2011

Я думаю, это должно быть похоже на:

 $(".tab1").mouseover(function() {

});
0 голосов
/ 18 июля 2011
$("li.tab1, li.tab2, li.tab3").mouseover(function(){
    // write your code here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...