2010-03-15 68 views

回答

1

我與阿里爾Popovsky的建議去使用過濾器,但如果我需要這在很多地方,我會用創建客戶選擇的petersendidit的建議。

(重要的)區別在於需要檢查.specified屬性。 IE始終返回超過80個屬性。

注意:即使這不是100%。有一些屬性,如INPUT .value,這是特殊情況,但由於我使用的是DIV,因此我可以忽略它們。

$("div").filter(function() 
{ 
    for (var i = 0; i < this.attributes.length; i++) 
    { 
     var attr = this.attributes[i]; 
     if (attr.specified) 
     { 
      return true; 
     } 
    } 
    return false; 
}) 
6

我不這麼認爲,但這應該做的伎倆

$('*').filter(function(){return this.attributes.length;}) 

和相反:

$('*').filter(function(){return !this.attributes.length;}) 
0

也許if($('.class').attr('*:attr').length > 0)

+0

attr方法不能做那樣的選擇http://api.jquery.com/attr/ – PetersenDidIt 2010-03-15 15:49:35

5

你可以創建您自己的選擇器,無任何屬性:

$.expr[':'].noAttrs = function(objNode ){ 
    if (objNode.attributes.length) return(true); 
    return(false); 
} 

$("div:noAttrs") 
相關問題