2016-07-26 114 views
3

我努力的目標在我的條件語句中提到的實際元素提到的目標單個元素,這裏是我的代碼示例:在條件語句的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

您可以使用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(),因爲它在大多數瀏覽器中稍快,我發現它更易於閱讀。

0

您可以直接使用「不等於」選擇器和多重選擇器功能。

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