jquery - 使用 jquery close() 查找与已知同级元素最接近的元素

标签 jquery xpath closest siblings

我正在尝试使用 jquery 最接近的命令根据元素是否具有特定的同级元素来查找特定元素。我一直在尝试不同的选择器,但还没有找到一个能够满足我的需求。

例如,如果结构如下所示

<div>
    <table>
        <tr>
            <td>
                  <span a>cell 1</span>
                  <span>cell 2</span>
            </td>
            <td siblingmatch="true">
                  <span b>cell 1</span>
                  <span>cell 2</span>
            </td>
        </tr>
    </table>

    <span siblingmatch="true">test 1</span>
</div>

如果我从标有 a 的跨度开始运行,我希望它返回它的父 td,因为它有一个标有siblingmatch 属性的同级。但是,如果我从标有 b 的范围开始运行相同的命令,我希望它返回表标记,因为这是它找到的第一个父级,其兄弟级标记为siblingmatch 属性。

最佳答案

您可以使用parentsfilter方法。

$('span').click(function(){
    var matched = $(this).parents().filter(function(){
         return $(this).siblings('[siblingmatch]').length;
    }).first();
});

http://jsfiddle.net/WW5qL/

请注意,siblingmatch 不是有效属性,您可以使用 HTML5 data-* 属性代替。

关于jquery - 使用 jquery close() 查找与已知同级元素最接近的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483524/

相关文章:

javascript - 如何处理 Backbone.js 应用程序中 hashchange 的滚动位置?

php - 让 jquery ajax (php) 脚本一个接一个地运行,而不是同时运行

php - 使用等号检查从php文件返回的数据和jquery get()方法

ruby-on-rails - Nokogiri 解析元词

xpath - 使用不同节点的 xpath 提取文本

javascript - 最近表的最近表

python - 在 Python 中浏览字典

javascript - 我可以使用 Jquery closest() 创建一个包含多个元素的选择器吗

javascript - 如何使用 jQuery 将面板菜单固定到位

c# - 为什么 NamespaceManager 在 XPath 中不使用前缀时不使用 DefaultNamespace