你能根据上下文过滤一个现有的jquery对象吗

Can you filter an existing jquery object by context?

本文关键字:一个 jquery 对象 上下文 过滤      更新时间:2023-09-26

我在jquery对象中缓存了一些元素。我现在想根据上下文过滤它们。我可以这样做吗?还是需要在使用第二个上下文参数的同时,用选择器创建另一个jquery对象?

这里有一个例子:

var cached = $('.elements');

稍后我想按上下文过滤这个数组,而不创建另一个选择器。如果我只是创建另一个选择器来做我想做的事情,它会是这样的:

//in event listener
var parent = $(this).closest('.parent');
$('.elements', parent).removeClass('class');

我不完全理解你的请求,如果我没有弄错,你可以使用.not(http://api.jquery.com/not/)

http://jsfiddle.net/kcy3f/

<span class="a">a1</span>
<span class="a">a2</span>
<span class="b">b3</span>
<span class="b">b4</span>
<script>
var all = $('span');
all.css("background", "#F99");
all = all.not(".a"); // remove class 'a' element
all.css("background", "#9F9");
</script>