2010-03-15 11 views
7

किसी भी विशेषता वाले तत्वों को चुनने का प्रयास करने में, निम्न में jQuery सिंटैक्स त्रुटि फेंकता है।क्या एक jQuery चयनकर्ता है यह जांचने के लिए कि किसी टैग में कोई विशेषता है या नहीं?

$("div[*]") 

क्या कोई टैग करने वाला कोई चयनकर्ता है या नहीं, यह जांचने के लिए कोई चयनकर्ता है?

jQuery 1.3 के साथ परीक्षण किया गया

उत्तर

1

मैं फिल्टर का उपयोग करने के लिए एरियल पॉपोवस्की के सुझाव के साथ गया, हालांकि अगर मुझे कई जगहों पर इसकी ज़रूरत है, तो मैं ग्राहक चयनकर्ता बनाने के पेटर्सेंडिड के सुझाव का उपयोग करूंगा।

(महत्वपूर्ण) अंतर यह है कि निर्दिष्ट संपत्ति की जांच की जानी चाहिए। आईई हमेशा 80 से अधिक गुण देता है।

नोट: यहां तक ​​कि यह 100% नहीं है। कुछ विशेषताएं हैं, जैसे INPUT .value, जो विशेष मामले हैं, लेकिन चूंकि मैं एक डीआईवी का उपयोग कर रहा हूं, इसलिए मैं उन्हें अनदेखा कर सकता हूं।

$("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

अटारी विधि इस तरह के चयन नहीं कर सकती http://api.jquery.com/attr/ – PetersenDidIt

5

आप कर सकते थे कोई विशेषताओं के लिए अपना स्वयं का चयनकर्ता बनाएं:

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

$("div:noAttrs") 
संबंधित मुद्दे

 संबंधित मुद्दे