2011-12-27 44 views
1

我有一個名爲box的div,它包含三個類。我想創建一個名爲relatedBoxes的變量,它存儲與box具有相同類別的任何複選框。分割類並將它們與另一個DIV匹配。 JQuery

我將這些類拆分並將它們存儲在名爲splitClass的變量中。

我現在只需要看看:checkbox是否包含保存在splitClass內的任何類。我試圖通過創建變量relatedBoxes,但這不起作用。

的標記:

<div id="box" class="marker blue large"> 

中的JavaScript:

var c = $('#box').attr('class'); 
var splitClass = c.split(' '); 

var relatedBoxes = $(':checkbox').hasClass(splitClass); 

非常感謝球員

回答

4

hasClass期望一個類名,你現在將它傳遞給一個數組。如果你想找到所有元素與,bluelarge,是這樣的:

var relatedBoxes = $(':checkbox').filter('.' + splitClass.join(',.')); 
+1

+1我喜歡這樣。也許與'filter'一起:'$('input [type =「checkbox」]')。filter('。'+ splitClass.join(',。'))'。 – 2011-12-27 17:46:52

+1

@FelixKling - 只是這樣做:) – 2011-12-27 17:47:42

+0

這看起來不錯,給我一段時間來測試它。希望它會存儲所有匹配任何這些類的複選框!謝謝你的回答! – 2011-12-27 18:00:17

0

您可以使用.filter()[docs]和迭代類的元素:

var splitClass = $('#box').attr('class').split(' '); 

var relatedBoxes = $('input[type="checkbox"]').filter(function() { 
    for(var i = 0, len = splitClass.length; i < len; i++) { 
     if($(this).hasClass(splitClass[i])) return true; 
    } 
    return false; 
}); 
相關問題