【问题标题】:jQuery: how to get all stylesheet classes+ids into an arrayjQuery:如何将所有样式表类 + id 放入数组中
【发布时间】:2010-04-07 01:09:46
【问题描述】:

我正在使用应用了 .css 的所见即所得编辑器 - 我怎样才能将其所有类放入一个变量中,例如。 allClasses = ['navi','main']?

谢谢

【问题讨论】:

    标签: jquery css class


    【解决方案1】:

    使用[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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 2011-05-26
      • 2015-01-24
      相关资源
      最近更新 更多