我在按钮点击上运行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
,我不确定我是否正确使用它,因为它不起作用。
答案 0 :(得分:3)
由于您循环遍历所有元素,因此您总是会得到每个函数的最后一次迭代的显示值。 您应该做的是在jquery选择器上使用选定的类:
$(".selectric-scroll ul li.selected")
然后你只需要在每个函数上处理一个元素。
答案 1 :(得分:0)
为什么不使用toggleClass("someclass")
并添加CSS
li.someclass {
display:none;
OR
visibility:hidden;
};