Javascript 返回到链中的原始选择器?

Javascript 返回到链中的原始选择器?,javascript,jquery,dom-traversal,Javascript,Jquery,Dom Traversal,如果我有这样的陈述: $('a:first').parent().next().css('color', 'red'); 如何返回原始jQuery对象$('a:first') 人们建议使用end(),但它只返回一步,我想一直返回到链的第一部分 编辑:好的,我之所以要这样做是因为这个表达式不起作用: $(this).parent().remove().next().show(); 如果要“存储”a:首先,然后在不丢失的情况下对其应用其他选择器,则应存储: 在这种情况下,我能想到的是使用.end

如果我有这样的陈述:

$('a:first').parent().next().css('color', 'red');
如何返回原始jQuery对象
$('a:first')

人们建议使用
end()
,但它只返回一步,我想一直返回到链的第一部分

编辑:好的,我之所以要这样做是因为这个表达式不起作用:

$(this).parent().remove().next().show();
如果要“存储”
a:首先
,然后在不丢失的情况下对其应用其他选择器,则应存储:


在这种情况下,我能想到的是使用
.end()
两次:

$('a:first').parent().next().css('color', 'red').end().end()

虽然这看起来不是很好,但它可以根据您的需要工作,您需要在每一步后退时使用它。不幸的是,jQuery没有像
.endAll()
这样的方法让您返回原始选择器,因此您可以按照meagar的建议执行操作,并将原始选择器保存到变量上…

我很困惑。。你想干什么?如果你需要
$('a:first')
你能不能再做一次
$('a.first').doit()
?@paul程序员请看我的编辑。基于此,我推荐@meagar的建议。你不会找到更简单更快的解决方案。您不应该通过
end
addBack
调用遍历整个DOM来访问您已经选择的元素。哇,这确实是最有效和正确的答案+1是的,我也考虑过这个解决方案,但我必须跟踪堆栈上有多少对象。有什么地方我可以建议jQuery开发人员向核心添加一个endAll函数吗?@silkfire没有,因为这是一个已解决的问题。每当您认为需要一个
endAll()
时,这是因为您不仅仅是将最初选择的元素存储在一个变量中以供重复引用。如果要重复使用选定的元素,则需要以这种方式缓存它们。
$('a:first').parent().next().css('color', 'red').end().end()