如何从选择器中排除具有属性的元素,而不考虑值



我正在使用一个框架,在屏幕上创建某些元素,这些元素在任何情况下都不应该以任何方式进行修改。这些元素总是有一个具有一定值的data-for属性。

我知道我可以通过使用not命令将它们从选择器中排除,比如:

input:not([data-for], .exclude)

如果有一个值,我知道我可以做一些类似的事情

input:not([data-for=lalala], .exclude)

问题是,我在开发时不知道值,第一个选项只有在属性没有值时才有效。还有别的办法吗?

input:not[data-for]选择器应该可以工作。见下文:

$(document).ready(function(){
console.log($('input[data-for]').length);
console.log($('input:not([data-for])').length);
});
input{ display: block; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input data-for="" />
<input data-for="something" />
<input />
<input />
<input data-for="something" />
<input data-for="" />

最新更新