我花了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中有用?
答案 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']")代替。