无法让 jQuery 最接近工作



我似乎无法让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>

您可以尝试以下方法:

$(".items").has("li:eq(7)").addClass("boxed");

这将检查列表.items是否具有第 8 个子元素(7,因为:eq从零开始(并将类应用于它。

$(".items").has("li:eq(7)").addClass("boxed");
.boxed{
  border: 1px solid black;
}
<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>


引用

.has((

:eq((

最新更新