2011-09-29 18 views
15

का उपयोग कर एक उपसर्ग से मेल खाने वाला एक विशेषता है- मैं स्ट्रिंग के साथ शुरू होने वाले तत्वों को ढूंढने के लिए चयनकर्ता बनाना चाहता हूं। इस बिंदु पर, मुझे लगता है कि यह चयनकर्ता मौजूद नहीं है। क्या मुझे चयनकर्ता क्षमताओं का विस्तार करने की आवश्यकता है? जेम्स Padolsey द्वारा Extending jQuery’s selector capabilitiesमैं उन तत्वों को कैसे ढूंढ सकता हूं जिनमें jquery

मुझे विशेषता जैसे कुछ उपसर्ग चयनकर्ता [नाम | = "मान"] शामिल करने की आवश्यकता है, लेकिन "मूल्य" से मेल खाने की बजाय, मुझे विशेषता के नाम से मेल खाना चाहिए, न कि विशेषता का मूल्य।

<tag data-plugin-option1="val1" data-plugin-option2="val2" />

मैं इस तरह के वाक्य रचना के साथ खत्म करना चाहते हैं: $('tag(:attr|="data-plugin")') क्योंकि यह कम से कम एक तत्व यह है कि साथ data-plugin

+2

मुझे लगता है कि '.data()' इन स्वचालित रूप से पार्स करता है, हालांकि यह सिर्फ एचटीएमएल 5 में हो सकता है, मैं अभी याद नहीं कर सकते –

+2

@ पेक्का: मुझे लगता है कि ओपी एक चयनकर्ता की तलाश में है जो * तत्व * देता है जिसमें मिलान करने वाला विशेषता नाम (या आंशिक नाम) होता है। – user113716

+0

हां, मैं एक चयनकर्ता की तलाश में हूं जो तत्वों को लौटाता है। – JJS

उत्तर

11

खैर शुरू होता है जो तत्व tag खोजना चाहिए, मैं मुझे लगता है कि मैं आपके प्रश्न को अलग-अलग पढ़ रहा हूं।

जिस तरह से मैंने इसे पढ़ा है, आप एक कस्टम चयनकर्ता बनाना चाहते हैं जो उन तत्वों का चयन करता है जिनमें दिए गए विशेषता का नाम है (या उस नाम की शुरुआत)।

यदि ऐसा है, तो मुझे लगता है कि आपको प्रत्येक तत्व के लिए attributes संग्रह को पुन: सक्रिय करने की आवश्यकता होगी।

डेमो:http://jsfiddle.net/GgmM7/

$.extend($.expr[':'],{ 
    attrNameStart: function(el,i,props) { 

     var hasAttribute = false; 

     $.each(el.attributes, function(i,attr) { 
      if(attr.name.indexOf(props[3]) !== -1) { 
       hasAttribute = true; 
       return false; // to halt the iteration 
      } 
     }); 

     return hasAttribute; 
    } 
}); 

$('img:attrNameStart(data-plugin)') 
+0

यह कुछ सुंदर कोड है। मुझे यकीन नहीं है कि मैं इतना अनुपस्थित क्यों हूं कि मैं एक डोम तत्व पर 'गुण' गुण के बारे में भूल गया। बहुत बहुत धन्यवाद! – JJS

+0

@ जेजेएस: आपका स्वागत है। – user113716

+0

बस कमाल है। धन्यवाद। – itslittlejohn

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

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