[attribute!=" value"]是否存在于CSS中的任何位置,或者我刚刚编写了它?

时间:2016-12-07 11:49:45

标签: javascript jquery css css3 css-selectors

我花了3年的时间逐步改进我的javascript,现在我正在学习jQuery简写等价物。

我早就意识到jQuery的聪明选择器现在可以使用原生Javascript实现:

  • document.querySelector();
  • document.querySelectorAll();

但是,在解决最近的问题时,我在jQuery中使用了以下选择器:

$('div div[class!="class4"]')

当我尝试在Javascript中复制我在jQuery中成功实现的内容时,我使用了相同的选择器:

document.querySelectorAll('div div[class!="class4"]')

但它没有用!

然后我检查了[attribute != "value"]的几个权威CSS来源,我无法在任何地方找到它。

我很高兴使用

document.querySelectorAll('div div:not(.class4)')
用Javascript代替

但是...... [attribute != "value"]呢?

我做了吗?

如果是这样,为什么它在jQuery中有用?

1 个答案:

答案 0 :(得分:3)

"!="是jquery":not()"是css。

  

但是......怎么样[属性!="价值"]?

jquery('[attribute != "value"]')

可以使用css选择器修改jquery部分:not()。

document.querySelector(':not([attribute="value"])')

有关jquery扩展的更多信息"!="可以在纪录片中找到: https://api.jquery.com/attribute-not-equal-selector/

  

因为[name!=" value"]是jQuery扩展而不是CSS的一部分   规范,使用[name!=" value"]的查询无法利用   本机DOM querySelectorAll()提供的性能提升   方法。为了更好地在现代浏览器中使用,请使用$(   "您的纯-CSS-选择" ).not(" [name =' value']")代替。