获取元素的xpath, 转换xpath为csspath进行jQuery元素获取
2023-09-11 14:17:18 时间
- var $shadow = new Object();
- /**
- 获取元素的xpath
- 特性:
- - 转换xpath为csspath进行jQuery元素获取
- - 仅生成自然表述路径(不支持非、或)
- @param dom {String/Dom} 目标元素
- @returns {String} dom的xpath路径
- */
- $shadow.domXpath = function(dom) {
- dom = $(dom).get(0);
- var path = "";
- for (; dom && dom.nodeType == 1; dom = dom.parentNode) {
- var index = 1;
- for (var sib = dom.previousSibling; sib; sib = sib.previousSibling) {
- if (sib.nodeType == 1 && sib.tagName == dom.tagName)
- index++;
- }
- var xname = dom.tagName.toLowerCase();
- if (dom.id) {
- xname += "[@id=\"" + dom.id + "\"]";
- } else {
- if (index > 0)
- xname += "[" + index + "]";
- }
- path = "/" + xname + path;
- }
- path = path.replace("html[1]/body[1]/","html/body/");
- return path;
- };
- /**
- 根据xpath获取元素
- 特性:
- - 转换xpath为csspath进行jQuery元素获取
- - 仅支持自然表述(不支持非、或元素选取)
- @param xpath {String} 目标元素xpath
- @returns {jQuery Object} 元素/元素集合
- */
- $shadow.xpathDom = function(xpath){
- // 开始转换 xpath 为 css path
- // 转换 // 为 " "
- xpath = xpath.replace(/\/\//g, " ");
- // 转换 / 为 >
- xpath = xpath.replace(/\//g, ">");
- // 转换 [elem] 为 :eq(elem) : 规则 -1
- xpath = xpath.replace(/\[([^@].*?)\]/ig, function(matchStr,xPathIndex){
- var cssPathIndex = parseInt(xPathIndex)-1;
- return ":eq(" + cssPathIndex + ")";
- });
- // 1.2 版本后需要删除@
- xpath = xpath.replace(/\@/g, "");
- // 去掉第一个 >
- xpath = xpath.substr(1);
- alert(xpath);
- // 返回jQuery元素
- return $(xpath);
- };
相关文章
- 11 个最佳 jQuery 模拟滚动条插件 scrollbar
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- jquery中 $ 和 jQuery 及 $() 的区别
- 【Jquery】jQuery获取URL參数的两种方法
- Asp.net/Jquery/JS中各种数据转换为【JSON数据格式】的类!(相当好,转)
- JQuery Basic Features Quick Walkthrough
- jQuery可拖拽排序列表jquery-sortable-lists
- 《jQuery、jQuery UI及jQuery Mobile技巧与示例》——9.2 技巧:用单个HTML文件服务多张页面
- jQuery验证控件jquery.validate.js的使用介绍
- jquery serialize对json的包装用法
- dom与jquery互相转换
- 2014第35周三jquery最近用到的内容总结
- Jquery获取html参数, jquery.params.js 获取参数
- jQuery全屏滚动插件FullPage.js中文API文档
- JQuery判断数组中是否包含某个元素,字母大小写转换函数,判断字符串中是否包含特定字符,
- jQuery 跨域访问问题解决方法(转)
- jquery mobile 方法收集.
- Jquery学习—jquery的事件
- MVC client validation after PartialView loaded via Ajax MVC3中 弹出 Dialog时候 提交的时候 使用 Jquery 不验证 form表单 的解决办法
- Jquery.linq 使用示例
- 【Javascript】【jQuery】onload和onready的区别