jQuery:如何将所有样式表类+ ids放入数组中

时间:2010-04-07 01:09:47

标签: jquery css class

我正在使用一个应用了.css的所见即所得编辑器 - 如何将所有类转换为变量,例如。 allClasses = ['navi','main']?

THX

1 个答案:

答案 0 :(得分:3)

使用[id][class]选择器。这将选择已定义此属性的所有元素。然后只需在它们上面调用attr('id')并获取ID。

(function($) {
    $.fn.allAttributes = function(attrName) {
        var selector = "[{attr}]".replace("{attr}", attrName);
        var attributes = $(selector, this).map(function() {
            return $(this).attr(attrName).split(' ');
        });
        attributes = $.unique(attributes);
        return attributes;
    };
})(jQuery);

这是一个jQuery插件,它正是这样做的。用法示例:

var ids = $("body").allAttributes("id");
var classes = $("body").allAttributes("class");

一些注意事项:

该函数正在调用split(' '),因为class属性可以有多个CSS类,用"main navi footer"之类的字符串分隔。这将它们分成单独的项目。最后在数组上调用$.unique因为类名可能在多个地方重复,我猜你不想重复。

此处示例:http://jsfiddle.net/G4Pwc/