首先选择子集

Emp*_*ger 3 jquery jquery-selectors

我有这样的DOM;

<li></li>
<li class="this"></li>
<li class="this"></li>
<li></li>
<li></li>
<li class="this"></li>
<li class="this"></li>
<li class="this"></li>
<li></li>
<li class="this"></li>
<li></li>
<li></li>
Run Code Online (Sandbox Code Playgroud)

我只想选择每个连续thises 系列中的第一个li .

因此,如果我将例如应用于.addClass("that")此选择器的对象,则生成的DOM将如此;

<li></li>
<li class="this that"></li>
<li class="this"></li>
<li></li>
<li></li>
<li class="this that"></li>
<li class="this"></li>
<li class="this"></li>
<li></li>
<li class="this that"></li>
<li></li>
<li></li>
Run Code Online (Sandbox Code Playgroud)

实现这种效果的最有效方法是什么?我无法添加或删除DOM中的任何元素(因此,例如将连续系列包装在自己的包装器div中是不可能的).

非常感谢提前!

Ry-*_*Ry- 6

这会有用吗?

$("li:not(.this) + .this").addClass('that');
Run Code Online (Sandbox Code Playgroud)

编辑:如果第一个项目是类this,那将无法工作,你需要这个(如果它适用):

$("li:not(.this) + .this, .this:first-of-type").addClass('that');
Run Code Online (Sandbox Code Playgroud)