2015-01-01 11 views
7

Các tài liệu tôi đang phân tích có hai phong cách sau đây của td thẻ (trong số những trường hợp khác của td tags):selectors CSS để loại trừ bởi sự hiện diện thuộc tính

<td align="right" nowrap bgcolor="#A1C87A">...</td> 

<td align="right" nowrap>...</td> 

Làm thế nào để viết một chọn mà chỉ chọn thứ hai nhập và loại trừ tất cả các thẻ td khác?

document.css('td:not([bgcolor="#A1C87A"])') 

loại trừ loại đầu tiên, bao gồm loại thứ hai cộng với tất cả các thẻ td khác.

document.css('td[align="right"][nowrap]') 

loại trừ tất cả các thẻ td khác, nhưng bao gồm cả hai loại ở trên.

+1

Bước 1 sẽ viết HTML hiện tại không bao gồm thuộc tính align và bgcolor. Hãy thử CSS thay thế. – j08691

+3

OP có thể không kiểm soát được HTML. Điều gì sẽ là điểm phân tích HTML bạn kiểm soát? –

+0

@the Tin Man: Vì vậy, mọi người có thể lung ngón tay của họ vào bạn và cho bạn biết những gì bạn nên làm thay vào đó, tất nhiên. – BoltClock

Trả lời

9

Bạn chỉ có thể kết hợp bộ chọn :not với bộ chọn thuộc tính khác:

document.css('td:not([bgcolor="#A1C87A"])[align="right"][nowrap]') 

Bạn thậm chí có thể đặt :not sau khi những người khác (nó không cần phải ở ngay bên cạnh tên phần tử):

document.css('td[align="right"][nowrap]:not([bgcolor="#A1C87A"])') 

Cả hai đều sẽ chọn tất cả các thành phần tdbgcolor="#A1C87A"nowrap nhưng không có align="right", đó là những gì bạn đang theo dõi.

+0

Cảm ơn! Đã đi với 'td [align =" right "] [nowrap]: không ([bgcolor])' sau khi tìm một thể hiện khác của 'bgcolor =" white "' mà tôi phải loại trừ. –

0

td:not([align="right"][nowrap][bgcolor]) nên là đủ cho những gì bạn muốn

+0

Cảm ơn. Điều này dường như không loại trừ tất cả các thẻ td khác. –

0
td[nowrap][bgcolor] ~ td[nowrap] { code }; 
+0

Cảm ơn. Có vẻ như điều này bao gồm tất cả các thẻ 'td' với thuộc tính' align', 'bicolor' và' nowrap'. –

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