Jangan gunakan di Browser
Di browser, gunakan document.querySelect('[attribute-name]')
.
Tetapi jika Anda menguji unit dan dom palsu Anda memiliki implementasi querySelector yang tidak stabil, ini akan berhasil.
Ini adalah jawaban @ kevinfahy, baru saja dipangkas menjadi sedikit dengan fungsi panah lemak ES6 dan dengan mengubah HtmlCollection menjadi array dengan biaya keterbacaan mungkin.
Jadi ini hanya akan bekerja dengan transpiler ES6. Juga, saya tidak yakin bagaimana performanya dengan banyak elemen.
function getElementsWithAttribute(attribute) {
return [].slice.call(document.getElementsByTagName('*'))
.filter(elem => elem.getAttribute(attribute) !== null);
}
Dan inilah varian yang akan mendapatkan atribut dengan nilai tertentu
function getElementsWithAttributeValue(attribute, value) {
return [].slice.call(document.getElementsByTagName('*'))
.filter(elem => elem.getAttribute(attribute) === value);
}