Используйте jQuery, чтобы получить список классов - PullRequest
10 голосов
/ 07 мая 2010

У меня есть неупорядоченный (ul) список HTML.К каждому элементу li прикреплен 1 или более классов.Я хочу просмотреть этот список ul и получить все (разные) классы.Затем из этого списка создайте список флажков, значение которых соответствует значению класса, а также чья метка соответствует значению класса.Один флажок для каждого класса.

Каков наилучший способ сделать это с помощью jQuery?

Ответы [ 2 ]

18 голосов
/ 07 мая 2010

Попробуйте это:

// get the unique list of classnames
classes = {};
$('#the_ul li').each(function() {
    $($(this).attr('class').split(' ')).each(function() { 
        if (this !== '') {
            classes[this] = this;
        }    
    });
});

//build the classnames
checkboxes = '';
for (class_name in classes) {
    checkboxes += '<label for="'+class_name+'">'+class_name+'</label><input id="'+class_name+'" type="checkbox" value="'+class_name+'" />';
};

//profit!
3 голосов
/ 09 апреля 2013

Мне также нужна была эта функциональность, но, как плагин, я поделился ею ...

jQuery.fn.getClasses = function(){
  var ca = this.attr('class');
  var rval = [];
  if(ca && ca.length && ca.split){
    ca = jQuery.trim(ca); /* strip leading and trailing spaces */
    ca = ca.replace(/\s+/g,' '); /* remove doube spaces */
    rval = ca.split(' ');
  }
  return rval;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...