无论值如何,如何从选择器中排除具有属性的元素

How to exclude element with attribute from selector regardless of value

我正在开发一个框架,可以在屏幕上创建某些元素,这些元素在任何情况下都不应以任何方式、任何时候、任何时候进行修改。这些元素总是有一个具有某些值的 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="" />