• 获取元素的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.     };  
     
  • 相关阅读:
    大数据学习——三大组件总结
    js获取当前时间的前一天/后一天
    Windows下主机名和IP映射设置
    大数据学习——HDFS的shell
    微服务化架构特征
    Spring cloud consul 相关前提知识
    Kubeadm 安装
    remove docker ce fully on centos7
    Jquery Gritter set position
    Toggle Checkboxes on/off
  • 原文地址:https://www.cnblogs.com/developer-ios/p/5953058.html
Copyright © 2020-2023  润新知