Trong jQuery bất cứ khi nào tôi gặp phải một cái gì đó như thế này:CSS và jQuery Selector Speed
$("div#MyDiv").....
Tôi thường nói với các nhà phát triển: "Đừng bận tâm đặt div
trước #MyDiv
, selectors ID là nhanh nhất. " I E.
$("#MyDiv")....
Điều này là do sau này sẽ treo trực tiếp vào document.getElementById
thay vì phải quét DOM cho tất cả <div>
yếu tố đầu tiên.
Câu hỏi của tôi là, thực hiện các quy tắc tương tự áp dụng cho bộ chọn CSS? I E. chứ không phải là:
div#MyDiv
{
}
là nó nhanh hơn để có chỉ đơn giản ?:
#MyDiv
{
}
(Tôi nhận ra rằng selectors CSS là cực kỳ nhanh chóng anyway, do đó trong thực tế không phải sẽ làm cho một sự khác biệt đáng kể.)
Nhiều Cảm ơn
EDIT
Bất kỳ liên kết hoặc tham chiếu nào có thể hữu ích cho các mục đích của cuộc thảo luận này. Cảm ơn :-)
Cân nhắc trường hợp: $ ("... ..."). Tìm ("# foo"). Ouch. Đột nhiên, các quy tắc CSS ở trên có ưu tiên khác nhau * (biểu mẫu đủ điều kiện với thẻ mới chỉ cao hơn một chút). –
@pst - Không chắc tôi theo dõi. Bạn có thể mở rộng? –
Xem xét trường hợp các phần tử chưa được đính kèm vào tài liệu. (Làm thế nào * không * jQuery xử lý này? Không liên quan đến câu hỏi cuối cùng mặc dù.) –