定位条件语句jQuery

时间:2016-07-26 12:40:54

标签: javascript jquery

我正在尝试定位条件语句中提到的实际元素,这是我的代码示例:

  let selectValue = $('.Select input').val();
  if ($('.vehicle-item').attr('data-value') != selectValue) {
    //Add a class to the element that hasn't got an attribute equal to the `selectValue` variable.
  }

所以基本上在我的页面上有多个元素,类.vehicle-item,其中一些将传递条件语句,有些则不会。我想为那个没有通过条件语句的类添加一个类。

如果我能以某种方式迭代那个条件语句,找不到任何没有通过的元素,并添加一个可以工作的类,但是我该如何做呢?

2 个答案:

答案 0 :(得分:2)

您可以使用filter()来实现此目标:

let selectValue = $('.Select input').val();
$('.vehicle-item').filter(function() {
    return $(this).data('value') != selectValue;
}).addClass('foo');

或者您可以使用属性选择器:

let selectValue = $('.Select input').val();
$('.vehicle-item[data-value!="' + selectValue + '"]').addClass('foo');

请注意,后者直接从元素中读取数据属性,因此如果在页面加载后以编程方式更新值,则 使用filter()

就个人而言,我会使用filter(),因为它在大多数浏览器中都会稍微快一点,而且我觉得它更容易阅读。

答案 1 :(得分:0)

你可以直接使用"不等于"选择器和多选择器功能。

$(".vehicle-item[data-value!='"+selectValue+"']").each(function(){
        // do something
});