【问题标题】:using xpath to select elements in jQuery?使用 xpath 在 jQuery 中选择元素?
【发布时间】:2014-06-24 07:23:10
【问题描述】:

有插件可以让我这样做吗?它说here (XPath Compatibility Plugin) 在 Jquery 版本 1.2 中删除了该功能,并且它链接的插件消失了!

【问题讨论】:

    标签: jquery xpath


    【解决方案1】:

    大多数浏览器都支持document.evaluate() 使用 XPath 表达式选择元素 - 不需要 jQuery。唯一缺乏支持的主要浏览器是 Internet Explorer。不过,Dimitri Glazkov 的 created a library 将实现 IE 缺少的功能。

    var result = document.evaluate("//a[@href='#']", document, null, 0, null),
        item;
    
    while (item = result.iterateNext()) {
        // item will be an <a> element with href="#" here
    }
    

    您也可以轻松创建一个插件来包装此功能:

    (function($) {
        $.xpath = function(exp, ctxt) {
            var item, coll = [],
                result = document.evaluate(exp, ctxt || document, null, 5, null);
    
            while (item = result.iterateNext())
                coll.push(item);
    
            return $(coll);
        }
    })(jQuery);
    
    // And call it like so:
    $.xpath("//a[@href='#']").click(function () { return false; });
    

    【讨论】:

    • 这里显示了一个更好的解决方案stackoverflow.com/questions/2068272/…,您可以将字符串用作本机css选择器
    • @Michael:这个问题和解决方案与这个无关。一个询问如何使用 XPath 语法选择元素,另一个询问如何为已选择的元素创建 CSS 选择器。你不能说任何一个都比另一个更好,因为它们都解决了不同的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2021-02-23
    • 2011-11-06
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多