栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Javascript计算元素的XPath位置?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Javascript计算元素的XPath位置?

Firebug可以做到这一点,它是开源BSD的,因此您可以重复使用它们的实现,而无需任何库。

第三方

这是上面链接源的摘录。以防万一上面的链接会改变。请检查源以从更改和更新或提供的完整功能集中受益。

Xpath.getElementXPath = function(element){    if (element && element.id)        return '//*[@id="' + element.id + '"]';    else        return Xpath.getElementTreeXPath(element);};

上面的代码调用此函数。注意,我添加了一些换行符以避免水平滚动条

Xpath.getElementTreeXPath = function(element){    var paths = [];  // Use nodeName (instead of localName)     // so namespace prefix is included (if any).    for (; element && element.nodeType == Node.ELEMENT_NODE; element = element.parentNode)    {        var index = 0;        var hasFollowingSiblings = false;        for (var sibling = element.previousSibling; sibling;    sibling = sibling.previousSibling)        { // Ignore document type declaration. if (sibling.nodeType == Node.document_TYPE_NODE)     continue; if (sibling.nodeName == element.nodeName)     ++index;        }        for (var sibling = element.nextSibling;  sibling && !hasFollowingSiblings; sibling = sibling.nextSibling)        { if (sibling.nodeName == element.nodeName)     hasFollowingSiblings = true;        }        var tagName = (element.prefix ? element.prefix + ":" : "")     + element.localName;        var pathIndex = (index || hasFollowingSiblings ? "["         + (index + 1) + "]" : "");        paths.splice(0, 0, tagName + pathIndex);    }    return paths.length ? "/" + paths.join("/") : null;};


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/635085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号