jQuery查找最近的元素

8

我需要找到相对于另一个元素最近的元素。 我想要一个通用的函数,不仅限于特定的树形结构。 也许jQuery中已经存在了这个功能,如果是,请告诉我! 以下是我编写的代码,它可以满足我的需求:

$.fn.nearest = function(s) {
    var o = {};
    var p = $(this).parent();
    while(p.length) {
        if(p.find(s).length) {
            o = p.find(s).first();
            break;
        }
        else {
           p = p.parent();
        }
    }
    return o;
};

-Chris


2
“nearest” 的定义是什么? - jfriend00
1
太好了!为了使其与此类jQuery函数的标准返回类型兼容,我们最好将第二行从var o = {};更改为var o = []; - Yossi Shasho
实际上,我认为 o = $(); 更适合兼容性。 - The_Black_Smurf
1个回答

4

嗯,我有一个网站,在上面有几个复选框,实际上是提供给访问者订购的。这些优惠并不唯一,可能分布在多个页面上。有时它们包含在不同的HTML标签或标签中。我需要在单击连接标签时检查“最近”的复选框。实际上,我想要全部检查,但只向其中一个添加数据对象。 Closest()仅沿DOM向上移动,无法在同一表格中的另一个td中找到元素。 Chris - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接