2010-04-07 51 views

回答

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屬性可以有通過一個字符串,如"main navi footer"分隔的多個CSS類。這將它們分成單獨的項目。 $.unique最後在數組上調用,因爲類名可能在多個地方重複,我猜你不想重複。

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