zoukankan      html  css  js  c++  java
  • 获取元素的xpath, 转换xpath为csspath进行jQuery元素获取

    Java代码  收藏代码
    1. var $shadow = new Object();  
    2.     /** 
    3.         获取元素的xpath 
    4.         特性: 
    5.         - 转换xpath为csspath进行jQuery元素获取 
    6.         - 仅生成自然表述路径(不支持非、或) 
    7.         @param dom {String/Dom} 目标元素 
    8.         @returns {String} dom的xpath路径 
    9.     */  
    10.     $shadow.domXpath = function(dom) {  
    11.       dom = $(dom).get(0);  
    12.       var path = "";  
    13.       for (; dom && dom.nodeType == 1; dom = dom.parentNode) {  
    14.         var index = 1;  
    15.         for (var sib = dom.previousSibling; sib; sib = sib.previousSibling) {  
    16.           if (sib.nodeType == 1 && sib.tagName == dom.tagName)  
    17.             index++;  
    18.           }  
    19.         var xname =  dom.tagName.toLowerCase();  
    20.         if (dom.id) {  
    21.           xname += "[@id="" + dom.id + ""]";  
    22.         } else {  
    23.           if (index > 0)  
    24.             xname += "[" + index + "]";  
    25.         }  
    26.         path = "/" + xname + path;  
    27.       }  
    28.         
    29.       path = path.replace("html[1]/body[1]/","html/body/");  
    30.         
    31.             return path;  
    32.     };  


    Java代码  收藏代码
    1. /** 
    2.             根据xpath获取元素 
    3.             特性: 
    4.             - 转换xpath为csspath进行jQuery元素获取 
    5.             - 仅支持自然表述(不支持非、或元素选取) 
    6.             @param xpath {String} 目标元素xpath 
    7.             @returns {jQuery Object} 元素/元素集合 
    8.     */  
    9.     $shadow.xpathDom = function(xpath){  
    10.             // 开始转换 xpath 为 css path  
    11.             // 转换 // 为 " "  
    12.             xpath = xpath.replace(////g, " ");  
    13.             // 转换 / 为 >  
    14.             xpath = xpath.replace(///g, ">");  
    15.             // 转换 [elem] 为 :eq(elem) : 规则 -1  
    16.             xpath = xpath.replace(/[([^@].*?)]/ig, function(matchStr,xPathIndex){  
    17.                     var cssPathIndex = parseInt(xPathIndex)-1;  
    18.                     return ":eq(" + cssPathIndex + ")";  
    19.             });  
    20.             // 1.2 版本后需要删除@  
    21.             xpath = xpath.replace(/@/g, "");  
    22.           // 去掉第一个 >  
    23.           xpath = xpath.substr(1);  
    24.           alert(xpath);  
    25.                 // 返回jQuery元素  
    26.           return $(xpath);  
    27.     };  
     
  • 相关阅读:
    Sql Server 2008卸载后再次安装一直报错
    listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
    Sql Server 2008修改Sa密码
    学习正则表达式
    Sql Server 查询第30条数据到第40条记录数
    Sql Server 复制表
    Sql 常见面试题
    Sql Server 简单查询 异步服务器更新语句
    jQuery stop()用法以及案例展示
    CSS3打造不断旋转的CD封面
  • 原文地址:https://www.cnblogs.com/developer-ios/p/5953058.html
Copyright © 2011-2022 走看看