如何将类添加到特定的li?

san*_*dip 4 javascript jquery

我有这个HTML:

<ul class="how-long">
    <li value="1">Any</li>
    <li value="1">1 day</li>
    <li value="2">Week end</li>
    <li value="7">1 Week</li>
    <li value="14">2 Week</li>
    <li value="21">3 Week</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在准备好文档时,我想在第4个li元素中添加新类.

这是我试过的:

$(".how-long li").slice(3).addClass('change-color');
Run Code Online (Sandbox Code Playgroud)

如果我发出警报:

alert($(".how-long li").slice(3).html());
Run Code Online (Sandbox Code Playgroud)

它给了我 1周这是正确的,但是当我添加类时,该类被添加到第4个li之后的所有li.

我希望这个没有为每个li元素添加ID.我可以直接在li元素中硬编码类,但我想使用jQuery动态地编写它.

mat*_*mmo 13

要在一个选择器中执行此操作,请使用nth-childeq:

nth-child相当快,看我jsPerf这里:http://jsperf.com/nth-child-vs-eq

jsperf

nth-child:

$(".how-long li:nth-child(4)").addClass('change-color');
Run Code Online (Sandbox Code Playgroud)

eq:

$(".how-long li:eq(3)").addClass('change-color');
Run Code Online (Sandbox Code Playgroud)

根本区别在于,nth-child它将为您提供该类的每个项目的第4个元素(无论它是否是当前项目的子项),而eq将为您提供当前项目的子项.


Mat*_*ain 9

$(".how-long li").eq(3).addClass('change-color');
Run Code Online (Sandbox Code Playgroud)