Không sử dụng trong Trình duyệt
Trong trình duyệt, sử dụng document.querySelect('[attribute-name]')
.
Nhưng nếu bạn đang thử nghiệm đơn vị và dom bị chế nhạo của bạn có triển khai querySelector không ổn định, điều này sẽ thực hiện được mẹo.
Đây là câu trả lời của @ kevinfahy.
Vì vậy, nó sẽ chỉ hoạt động với một trình chuyển tiếp ES6. Ngoài ra, tôi không chắc nó sẽ hoạt động như thế nào với nhiều yếu tố.
function getElementsWithAttribute(attribute) {
return [].slice.call(document.getElementsByTagName('*'))
.filter(elem => elem.getAttribute(attribute) !== null);
}
Và đây là một biến thể sẽ nhận được một thuộc tính với một giá trị cụ thể
function getElementsWithAttributeValue(attribute, value) {
return [].slice.call(document.getElementsByTagName('*'))
.filter(elem => elem.getAttribute(attribute) === value);
}