当一个实例在each()函数中变为true时执行某些操作

时间:2017-12-15 20:17:18

标签: javascript jquery html

我在按钮点击上运行jQuery的.each函数,该按钮点击三个订单项。当单击页面上的另一个对象时,其中一个行项目将收到“已选择”类,它将作为默认值从第一个行项开始。

我希望在data-index的{​​{1}}大于0且li的班级名称为li时执行某些操作。

selected
const $orderStatusButton = $('form#oar-widget-orders-and-returns-form button');

$orderStatusButton.on('click', function() {
  $(".selectric-scroll ul li").each(function() {
    var DataIndex = $(this).data('index');
    console.log(DataIndex);
    if ((DataIndex > 0) && ($(this).hasClass('selected'))) {
      $('div#oar_select-error').css('display', 'none');
    } else {
      $('div#oar_select-error').css('display', 'block');
    }
  });
});

基本上,我希望在<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li data-index="0" class="selected"></li> <li data-index="1" class=""></li> <li data-index="2" class=""></li> </ul>为1或2的订单项的类名为data-index时隐藏div,并在包含selected的订单项时显示0的类名为data-index,我不确定我是否正确使用它,因为它不起作用。

2 个答案:

答案 0 :(得分:3)

由于您循环遍历所有元素,因此您总是会得到每个函数的最后一次迭代的显示值。 您应该做的是在jquery选择器上使用选定的类:

$(".selectric-scroll ul li.selected")

然后你只需要在每个函数上处理一个元素。

答案 1 :(得分:0)

为什么不使用toggleClass("someclass")并添加CSS

li.someclass { 
display:none;
OR
visibility:hidden;
};