Oli*_*ver 8 jquery jquery-selectors
示例数据:
<input class="foo" special="yes" value="1" new="yes">
<input class="foo" special="no" value="2" new="yes">
<input class="foo" value="3" new="red">
<input class="foo" special="yes" value="4">
<input class="foo" value="5" new="yes">
Run Code Online (Sandbox Code Playgroud)
现在jquery:
var the_inputs = $("input.foo");
Run Code Online (Sandbox Code Playgroud)
...会给我一个所有输入的jquery对象.
我也可以这样做:
var the_special_inputs = $("input.foo[special]");
Run Code Online (Sandbox Code Playgroud)
...仅返回具有特殊属性的输入.
更进一步,我可以得到具有特殊属性的输入,其中它们也具有属性new"yes":
var the_special_inputs = $("input.foo[special][new='yes']");
Run Code Online (Sandbox Code Playgroud)
但是,如果我只想使用'the_inputs'并创建var the_special_inputs而不做另一个选择器呢?在那里,如果我有存储的var:
var the_inputs = $("input.foo");
Run Code Online (Sandbox Code Playgroud)
...有没有办法在存储的var上写一个额外的选择器,它可以给我$("input.foo[special]");和上面的其他结果相同但只是使用the_inputs以前存储过的?
我尝试过的一些不起作用的东西:
$(the_inputs+"[special][new='yes']");
$("[special]",the_inputs);
Run Code Online (Sandbox Code Playgroud)
可能吗?
use*_*716 11
var the_inputs = $("input.foo");
var the_special_inputs = the_inputs.filter("[special][new='yes']");
Run Code Online (Sandbox Code Playgroud)
这将创建一个新的集合,原始集合缩减为与您传递的选择器匹配的集合,而无需执行额外的DOM选择.
还有一种方法叫做.not()保留那些与选择器不匹配的方法.