迭代列表并获得最接近的值

时间:2017-11-17 10:01:48

标签: jquery css

如何在下面的列表中循环并在输入中设置作为类的值?但它无法迭代.liBrand列表项。

<ul>
    <li class="liModelFilter liMultipleSelectionFilter">
        <ul>
             <li class="liBrand"><b>Mini</b></li>
             <li>
                 <input type="checkbox" value="1090" id="ModelIds">
                 <span>Cooper</span>
             </li>
             <li>
                 <input type="checkbox" value="1092" id="ModelIds">
                 <span>One</span>
             </li>
        </ul>
    </li>
 </ul>

必填结果:

<li>
    <input class="Cooper" type="checkbox" value="1090" id="ModelIds">
    <span>Cooper</span>
</li>

我需要这个,因为我必须创建一个自定义复选框 - 每个复选框都必须有类型的徽标(Cooper,One,...)。

我已经尝试过这样的事情:

jQuery($('.liModelFilter ul li:not(.liBrand)')).each(function() {
    console.log($('.liModelFilter ul li:not(.liBrand)')).html();
});

1 个答案:

答案 0 :(得分:1)

最简单的方法是在addClass()元素上调用input,并提供一个返回兄弟span的文本内容的函数,如下所示:< / p>

$('.liModelFilter :checkbox').addClass(function() {
  return $(this).next('span').text();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="liModelFilter liMultipleSelectionFilter">
    <ul>
      <li class="liBrand"><b>Mini</b></li>
      <li>
        <input type="checkbox" value="1090" class="ModelIds">
        <span>Cooper</span>
      </li>
      <li>
        <input type="checkbox" value="1092" class="ModelIds">
        <span>One</span>
      </li>
    </ul>
  </li>
</ul>

另请注意,我已将id="ModelIds"更改为某个类,因为您在DOM中不能有重复的id属性。