引用链中的当前jQuery对象?

时间:2010-04-15 17:30:44

标签: jquery

去年在SF的DevDays中(在jQuery 1.4发布之前),我认为他们提到了1.4中即将推出的功能,它允许你在链中引用当前的jQuery对象。我已经阅读了所有1.4改进,但未能找到它。有谁知道如何做到这一点?

示例

当使用与当前对象相关的方法(如.next())时,能够访问当前jQuery对象会很有帮助:

// Current way
var items = $(this).closest('tr');
items = items.add(items.next(':not([id])'));

// Magical 1.4 way? Is there a "chain"-like object?
var items = $(this).closest('tr')
    .add(chain.next(':not([id])'));

2 个答案:

答案 0 :(得分:4)

我认为这是最接近的,使用.andSelf()

var items = $(this).closest('tr').next(':not([id])').andSelf();

这转到.next()调用,但随后将tr添加回来。一切都在链条发生的环境中,因此要么跳转以添加元素,要么存储原始引用,就像当前可用的那样。这些是跳跃的有用功能:http://api.jquery.com/category/traversing/miscellaneous-traversal/

John Resig posted this concept a while back,但据我所知,没有什么比这更接近jQuery的核心了。但是,如果需要,您可以使用博客上发布的代码。

答案 1 :(得分:1)

可能andSelf() http://api.jquery.com/andSelf/ 这将返回先前的选择,但您必须在所有内容上使用:not([id])..