属性有问题!=选择器

2022-01-10 00:00:00 css-selectors html css

问题很简单,答案可能不是.

The question is simple, the answer maybe not.

我正在尝试将几种样式应用于没有特定 ID 的所有输入元素.我在我的 CSS 样式表中使用了这个选择器:input[id!='move'] 但不幸的是它在 IE10 或 Chrome 中都不起作用.

I'm trying to apply several styles to all input elements without an specific id. I use this selector in my CSS stylesheet: input[id!='move'] but unfortunately it's not working either in IE10 or in Chrome.

奇怪的是,这个块: input:not(#move) 在两者中都能完美地工作.我迷路了,因为据我了解这些选择器的工作原理,第一块代码应该可以工作.

The curious thing is that this block: input:not(#move) works perfectly in both. I'm lost because the first block of code is supposed to work as far as I understand how these kind of selectors work.

有什么想法吗?

推荐答案

这是一个非标准的属性选择器 由 jQuery 发明.它不是 Selectors 规范的一部分,所以它不能在 jQuery 之外的任何地方工作(这个包括 document.querySelectorAll()) 之类的东西.

That is a non-standard attribute selector invented by jQuery. It's not part of the Selectors specification, so it won't work anywhere outside of jQuery (this includes things like document.querySelectorAll()).

严格来说,jQuery 的 input[id!='move'] 在标准选择器语法中的直接等价物是 input:not([id='move']),带有属性选择器.但是由于您要匹配没有特定 ID 的元素,所以 input:not(#move) 很好.

Strictly speaking, the direct equivalent of jQuery's input[id!='move'] in standard selector syntax is input:not([id='move']), with an attribute selector. But since you're looking to match elements without a specific ID, input:not(#move) is fine.

相关文章