Tôi đã nghe nói rằng querySelector
& querySelectorAll
là các phương pháp mới để chọn DOM
phần tử. Làm thế nào để họ so sánh với các phương pháp cũ hơn getElementById
và getElementsByClassName
về hiệu suất và hỗ trợ trình duyệt?
Hiệu suất so với việc sử dụng bộ chọn truy vấn của jQuery như thế nào?
Có đề xuất phương pháp hay nhất nào để sử dụng tập hợp gốc không?
getElementById
và getElementsByClassName
vẫn lý tưởng cho các mục đích mà tên của chúng mô tả.
qS/qSA
có thể được sử dụng từ bất kỳ ngữ cảnh phần tử nào, nhưng gEBI
chỉ có thể được sử dụng từ document
ngữ cảnh.
getElementById
khớp với các id
thuộc tính để tìm các nút DOM, trong khi querySelector
tìm kiếm theo bộ chọn. Vì vậy, đối với một selector ví dụ như không hợp lệ <div id="1"></div>
, getElementById('1')
có thể làm việc trong khi querySelector('#1')
sẽ thất bại, trừ khi bạn nói với nó để phù hợp với id
thuộc tính (ví dụ querySelector('[id="1"]')
.
querySelector
và querySelectorAll
hiện đang được hỗ trợ đầy đủ. caniuse.com/#feat=queryselector