Не використовувати в браузері
У браузері використовуйте document.querySelect('[attribute-name]')
.
Але якщо ви перевіряєте блок, і ваш глузливий будинок має нескінченну реалізацію querySelector, це зробить трюк.
Це відповідь @ 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);
}