使用xpath在jQuery中选择元素?

sig*_*nce 8 jquery xpath

有插件可以让我这样做吗?它在这里(XPath兼容性插件),在Jquery 1.2版本中删除了该功能,并且它链接的插件已经消失了!

And*_*y E 10

大多数浏览器都支持document.evaluate()使用XPath表达式选择元素 - 不需要jQuery.唯一没有支持的主要浏览器是Internet Explorer.但是,Dimitri Glazkov已经创建了一个库来实现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
}
Run Code Online (Sandbox Code Playgroud)

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

(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; });
Run Code Online (Sandbox Code Playgroud)