如何用jquery选择前N个元素?

zhu*_*hou 15 jquery css-selectors

<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>
Run Code Online (Sandbox Code Playgroud)

我想只在事件上添加onmouse到前三个li(tab1,tab2,tab3).如何写if条件.

Ada*_*son 41

你不需要if- 你可以使用jQuery :lt()选择器

$('ul li:lt(3)').mouseenter(function(){});
Run Code Online (Sandbox Code Playgroud)

请注意,索引从零开始,因此前三个是0,1和2

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


jAn*_*ndy 5

实际上,您不需要任何条件语句,您可以使用单个选择器执行此操作:

$('ul li:first').mouseenter(function() {
});
Run Code Online (Sandbox Code Playgroud)

如果你想进一步"过滤"你的<li>节点,那就更具体了

$('ul li.navahead:first').mouseenter(function() {
});
Run Code Online (Sandbox Code Playgroud)

更新:

要回答您更新的问题:

$('ul li[class^=tab]').mouseenter(function() {
});
Run Code Online (Sandbox Code Playgroud)

^= 将选择以给定字符串开头的所有类名(在本例中为"tab")