我似乎无法让jquery最接近我的列表项的父OL。
我的代码应该有效地说明如果列表包含8个以上的LI,应用类名...但只将类名应用于包含8个以上项目的列表的直接父级。
相反,它将类名应用于文档中的每个OL。
以下代码:
var boxFilters = jQuery('.items li');
//check if there are 8 or more filters
if (boxFilters.length > 8) {
//if so add a class to the parent OL
boxFilters.closest("ol").addClass("boxed");
}
HTML
<ol class="items">
<li>1</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ol>
<ol class="items">
<li>1</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</lI>
<li>7</li>
<li>8</li>
<li>9</li>
</ol>
答案 0 :(得分:0)
您可以尝试以下方法:
$(".items").has("li:eq(7)").addClass("boxed");
这将检查列表.items
是否有第8个子元素(7因为:eq
从零开始)并将类应用于它。
$(".items").has("li:eq(7)").addClass("boxed");
&#13;
.boxed{
border: 1px solid black;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ol class="items">
<li>Entry 1</li>
<li>Entry 2</li>
<li>Entry 3</li>
<li>Entry 4</li>
<li>Entry 5</li>
<li>Entry 6</li>
<li>Entry 7</li>
<li>Entry 8</li>
</ol>
<ol class="items">
<li>Entry 1</li>
<li>Entry 2</li>
<li>Entry 3</li>
</ol>
&#13;
<强>参考强>