Có, nhưng nó không phải là hiện diện trong tất cả các trình duyệt. Các phiên bản Internet Explorer cũ (tức là trước phiên bản 8) không hỗ trợ phiên bản này. Hàm này là querySelectorAll
(hoặc querySelector
cho một phần tử), cho phép bạn sử dụng bộ chọn CSS để tìm các phần tử.
document.querySelectorAll('[property]'); // All with attribute named "property"
document.querySelectorAll('[property=value]'); // All with "property" set to "value" exactly.
(Complete list of attribute selectors on MDN.)
này tìm tất cả các yếu tố với các tài sản thuộc tính. Nó sẽ là tốt hơn để chỉ định một tên thẻ nếu có thể:
document.querySelectorAll('span[property]');
Bạn có thể làm việc xung quanh này nếu cần thiết bằng cách lặp qua tất cả các yếu tố trên trang để xem liệu họ có các thuộc tính thiết lập:
var withProperty = [],
els = document.getElementsByTagName('span'), // or '*' for all types of element
i = 0;
for (i = 0; i < els.length; i++) {
if (els[i].hasAttribute('property')) {
withProperty.push(els[i]);
}
}
Các thư viện như jQuery xử lý điều này cho bạn: có thể là một ý tưởng hay để cho phép họ thực hiện việc nâng hạng nặng.
Bạn có thể xây dựng trên lý do tại sao bạn cần phải làm theo cách này đặc biệt? Nó rất kém hiệu quả và có cách tiếp cận tốt hơn. –