Having trouble with attribute != selector

2019-01-20 10:19发布

问题:

The question is simple, the answer maybe not.

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.

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.

Any ideas?

回答1:

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()).

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.