我正在解析的文档具有以下两种样式的td
标签(以及td
标签的其他实例):
<td align="right" nowrap bgcolor="#A1C87A">...</td>
<td align="right" nowrap>...</td>
如何编写仅选择第二种类型的选择器,并排除所有其他td
标签?
document.css('td:not([bgcolor="#A1C87A"])')
不包括第一种类型,包括第二种类型以及所有其他td
标记。
document.css('td[align="right"][nowrap]')
排除所有其他td
标记,但包括上述两种类型。
您可以简单地将:not
选择器与其他属性选择器组合在一起:
document.css('td:not([bgcolor="#A1C87A"])[align="right"][nowrap]')
您甚至可以将:not
放在其他之后(它不需要紧挨着元素名称):
document.css('td[align="right"][nowrap]:not([bgcolor="#A1C87A"])')
这些都将选择所有具有bgcolor="#A1C87A"
和nowrap
但没有align="right"
的td
元素,这就是您所追求的。
td:not([align="right"][nowrap][bgcolor])
应该足以满足你想要的
td[nowrap][bgcolor] ~ td[nowrap] { code };