2017-01-24 66 views
0

匹配兩個選擇器的類和數據屬性時,有沒有辦法獲得true?如何使用jquery查找匹配選擇器的類和數據屬性

查找匹配的下拉例如:

`<select class="type-featured" data-featured="normal">` 
.... 
`<select class="type-featured" data-featured="classical">` 
.... 
`<select class="type-featured" data-featured="modern">` 

查找選擇,類等於輸入功能和數據功能的值等於正常的 - 這裏是代碼:

$('.style-wrapper').each(function() { 
    var $styles = $(this); 
    if ($styles.parents().find('select').is('.type-featured, [data-featured=normal]')) { 
    // do something here 
    } 
}); 

我是否選擇了TRUE有type-featured類或data-featured="normal", data-featured="classical", data-featured="modern"

它似乎是TRUE如果匹配任何一個選擇器。

使用.is函數可以得到我想要的結果嗎?可以使用匿名函數,如:

.is(function() { 
//here some logic to result 
}); 

回答

0

代替is(...)嘗試hasClass() - 這確定是否有任何匹配的元素被分配給定的類。

+0

的.hasClass( )方法將返回true,如果該類被分配給e字元素。這裏是類和數據分區 –

2

如果部署了jQuery:

$('select.type-featured[data-featured="normal"]').each(function(){ 

    // [... DO SOMETHING...] 

}); 

你只能運行在具有這些<select>元素的功能:

  • class="type-featured"
  • data-featured="normal"
+0

我寫這個例子的代碼。我原來的代碼很大,很難解釋。我可不好好解釋一下。好的,如果我們有選擇,輸入和textarea然後如何匹配? –

+0

使用逗號,可以指定任意數量的選擇器以合併爲單個結果。請參閱:https://api.jquery.com/multiple-selector/ **例如。**'('select.type-featured [data-featured =「normal」],input.type-featured [data-featured =「normal」],textarea.type-featured [data-featured =「normal」]')' – Rounin

相關問題