2013-07-28 32 views
6

Câu hỏi rất đơn giản, câu trả lời có thể không.Gặp sự cố với thuộc tính! = Selector

Tôi đang cố gắng áp dụng nhiều kiểu cho tất cả các yếu tố đầu vào không có id cụ thể. Tôi sử dụng bộ chọn này trong biểu định kiểu CSS của tôi: input[id!='move'] nhưng tiếc là nó không hoạt động trong IE10 hoặc trong Chrome.

Điều kỳ lạ là khối này: input:not(#move) hoạt động hoàn hảo ở cả hai. Tôi bị mất vì khối mã đầu tiên được cho là hoạt động theo như tôi hiểu cách các loại bộ chọn này hoạt động như thế nào.

Bất kỳ ý tưởng nào?

+2

Bạn không thể loại trừ một thuộc tính bằng cách sử dụng [bộ chọn thuộc tính] (http://www.w3.org/TR/selectors/#attribute-selectors) - sử dụng '!' Để loại trừ giá trị thuộc tính trong CSS là không hợp lệ. Nếu bạn * cần * để loại trừ một ID, bạn sẽ phải bao gồm [': not()'] (http://www.w3.org/TR/selectors/#negation) pseudo-class. – Adrift

Trả lời

6

Đó là bộ chọn thuộc tính phi tiêu chuẩn invented by jQuery. Nó không phải là một phần của Selectors specification, do đó, nó sẽ không hoạt động ở bất kỳ đâu bên ngoài jQuery (bao gồm những thứ như document.querySelectorAll()).

Nói đúng, tương đương trực tiếp của jQuery input[id!='move'] trong cú pháp chọn tiêu chuẩn là input:not([id='move']), với bộ chọn thuộc tính. Nhưng vì bạn đang tìm kiếm để khớp với các phần tử không có ID cụ thể, input:not(#move) là tốt.

Các vấn đề liên quan