Разделение классов и сопоставление их с другим DIV.JQuery - PullRequest
1 голос
/ 27 декабря 2011

У меня есть div с именем box, который содержит три класса.Я хочу создать переменную с именем relatedBoxes, в которой хранятся флажки, которые разделяют те же классы, что и box.

Я разделяю классы и сохраняю их в переменной с именем 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);

Спасибомного, ребята

Ответы [ 2 ]

4 голосов
/ 27 декабря 2011

hasClass ожидайте одно имя класса, вы передаете ему массив прямо сейчас.Если вы пытаетесь найти всех элементов с marker, blue или large, что-то вроде:

var relatedBoxes = $( ':checkbox' ).filter( '.' + splitClass.join( ',.' ) );
0 голосов
/ 27 декабря 2011

Вы можете использовать .filter() [документы] и перебирать классы элемента:

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;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...