使用jQuery获取类列表

时间:2010-05-07 08:49:31

标签: jquery jquery-selectors

我有一个未订购的(ul)HTML列表。每个li项都附加了一个或多个类。 我想通过这个ul列表获取所有(不同的)类。然后从此列表中创建一个复选框列表,其值与该类的值匹配,并且其标签与该类的标签匹配。每个班级一个复选框。

使用jQuery执行此操作的最佳方法是什么?

2 个答案:

答案 0 :(得分:18)

试试这个:

// 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!

答案 1 :(得分:3)

我也需要这个功能,但作为一个插件,我想分享它......

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;
}