首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过XPath选择jQuery元素

通过XPath选择jQuery元素
EN

Stack Overflow用户
提问于 2011-06-23 19:25:58
回答 3查看 147.1K关注 0票数 69

我有一个XPath选择器。如何使用jQuery获取与该选择器匹配的元素?

我见过https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript,但它没有使用jQuery,而且它看起来有点太冗长了,我想它不是跨浏览器的。

而且,这个http://jsfiddle.net/CJRmk/似乎不起作用。

alert($("//a").length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<a href="a1.php"></a>
<a href="a2.php"></a>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-23 19:33:58

火狐、Chrome、Safari和Opera都支持document.evaluate() (DOM Level 3 XPath) --唯一缺少的主要浏览器是MSIE。然而,jQuery支持基本的XPath表达式:http://docs.jquery.com/DOM/Traversing/Selectors#XPath_Selectors (在当前jQuery版本中已移至插件中,请参阅https://plugins.jquery.com/xpath/)。它只是将XPath表达式转换成等价的CSS选择器。

票数 27
EN

Stack Overflow用户

发布于 2013-06-13 15:59:31

如果您正在调试或类似-在chrome开发人员工具中,您可以简单地使用

$x('/html/.//div[@id="text"]')
票数 156
EN

Stack Overflow用户

发布于 2013-02-03 12:24:25

首先创建一个xpath选择器函数。

function _x(STR_XPATH) {
    var xresult = document.evaluate(STR_XPATH, document, null, XPathResult.ANY_TYPE, null);
    var xnodes = [];
    var xres;
    while (xres = xresult.iterateNext()) {
        xnodes.push(xres);
    }

    return xnodes;
}

要在jquery中使用xpath选择器,可以这样做:

$(_x('/html/.//div[@id="text"]')).attr('id', 'modified-text');

希望这能有所帮助。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6453269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档