क्या आप मुझे बता सकते हैं कि कोई डोम एपीआई है जो दिए गए विशेषता नाम और विशेषता मान वाले किसी तत्व की खोज करता है:
कुछ इस तरह:
doc.findElementByAttribute("myAttribute", "aValue");
क्या आप मुझे बता सकते हैं कि कोई डोम एपीआई है जो दिए गए विशेषता नाम और विशेषता मान वाले किसी तत्व की खोज करता है:
कुछ इस तरह:
doc.findElementByAttribute("myAttribute", "aValue");
जवाबों:
अद्यतन: पिछले कुछ वर्षों में परिदृश्य काफी बदल गया है। अब आप मज़बूती से उपयोग कर सकते हैं querySelector
और querySelectorAll
, ऐसा करने के लिए Wojtek का जवाब देखें ।
अब एक jQuery निर्भरता के लिए कोई ज़रूरत नहीं है। यदि आप jQuery का उपयोग कर रहे हैं, तो महान ... यदि आप नहीं हैं, तो आपको अब केवल विशेषताओं द्वारा तत्वों का चयन करने के लिए इस पर भरोसा करने की आवश्यकता नहीं है।
वेनिला जावास्क्रिप्ट में ऐसा करने का बहुत छोटा तरीका नहीं है, लेकिन कुछ समाधान उपलब्ध हैं।
आप ऐसा कुछ करते हैं, तत्वों के माध्यम से लूपिंग और विशेषता की जांच करते हैं
यदि jQuery जैसी लाइब्रेरी एक विकल्प है, तो आप इसे इस तरह से थोड़ा आसान कर सकते हैं:
$("[myAttribute=value]")
यदि मान एक वैध सीएसएस पहचानकर्ता नहीं है (इसमें स्थान या विराम चिह्न है, आदि), तो आपको मूल्य के चारों ओर उद्धरण की आवश्यकता है (वे एकल या दोहरे हो सकते हैं):
$("[myAttribute='my value']")
आप यह भी कर सकते हैं start-with
, ends-with
, contains
, आदि ... वहाँ विशेषता चयनकर्ता के लिए कई विकल्प हैं ।
आधुनिक ब्राउज़र देशी का समर्थन करते हैं querySelectorAll
ताकि आप कर सकें:
document.querySelectorAll('[data-foo="value"]');
https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll
ब्राउज़र संगतता के बारे में विवरण:
अप्रचलित ब्राउज़रों (IE9 और पुराने) का समर्थन करने के लिए आप jQuery का उपयोग कर सकते हैं:
$('[data-foo="value"]');
SyntaxError: An invalid or illegal string was specified
'[data-foo="value"]'
हम डोम document.querySelector()
और document.querySelectorAll()
विधियों का उपयोग करके विशेषता चयनकर्ता का उपयोग कर सकते हैं ।
आपके लिये:
document.querySelector("selector[myAttribute='aValue']");
और उपयोग करके querySlectorAll()
:
document.querySelectorAll("selector[myAttribute='aValue']");
में querySelector()
और querySelectorAll()
तरीकों हम वस्तुओं के रूप में हम "CSS" में चयन चुन सकते हैं।
Https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors में "CSS" विशेषता चयनकर्ताओं के बारे में अधिक जानकारी
FindByAttributeValue("Attribute-Name", "Attribute-Value");
ps यदि आप सटीक तत्व-प्रकार जानते हैं, तो आप तीसरा पैरामीटर जोड़ते हैं (यानी div, a, p ...etc...
):
FindByAttributeValue("Attribute-Name", "Attribute-Value", "div");
लेकिन सबसे पहले, इस फ़ंक्शन को परिभाषित करें:
function FindByAttributeValue(attribute, value, element_type) {
element_type = element_type || "*";
var All = document.getElementsByTagName(element_type);
for (var i = 0; i < All.length; i++) {
if (All[i].getAttribute(attribute) == value) { return All[i]; }
}
}
पीएस प्रति टिप्पणियों की सिफारिशों को अपडेट किया गया।
document.querySelectorAll('[data-foo="value"]');
के रूप में @Wojtek Kruszewski द्वारा प्रस्तावित awnser पर प्रस्तावित है।
आप getAttribute का उपयोग कर सकते हैं:
var p = document.getElementById("p");
var alignP = p.getAttribute("align");
https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute
p
बिना डोम id
या p
(और परीक्षण विशेषताओं के) का उपयोग किए बिना तत्व का चयन करना चाहता है
क्वेरी चयनकर्ताओं का उपयोग करें, उदाहरण:
document.querySelectorAll(' input[name], [id|=view], [class~=button] ')
input[name]
name
संपत्ति वाले तत्व ।
[id|=view]
आईडी वाले तत्व जिनके साथ शुरू होता है view-
।
[class~=button]
button
कक्षा के साथ तत्व ।