ब्राउज़र में उपयोग न करें
ब्राउज़र में, उपयोग करें document.querySelect('[attribute-name]')
।
लेकिन अगर आप इकाई परीक्षण कर रहे हैं और आपके नकली डोम में एक परतदार क्वेरीसेलेर कार्यान्वयन है, तो यह चाल चलेगा।
यह @ kevinfahy का उत्तर है, बस ES6 वसा तीर के कार्यों के साथ थोड़ा सा हो सकता है और पठनीयता की कीमत पर HtmlCollection को एक सरणी में परिवर्तित करके।
तो यह केवल ES6 ट्रांसपिलर के साथ काम करेगा। इसके अलावा, मुझे यकीन नहीं है कि यह बहुत सारे तत्वों के साथ कैसा प्रदर्शन करेगा।
function getElementsWithAttribute(attribute) {
return [].slice.call(document.getElementsByTagName('*'))
.filter(elem => elem.getAttribute(attribute) !== null);
}
और यहां एक संस्करण है जो एक विशिष्ट मूल्य के साथ एक विशेषता प्राप्त करेगा
function getElementsWithAttributeValue(attribute, value) {
return [].slice.call(document.getElementsByTagName('*'))
.filter(elem => elem.getAttribute(attribute) === value);
}