java dom xpath_使用jquery实现一个生成某个DOM元素的xpath函数

实现一个函数,生成某个DOM元素的xpath,主要包含两部分:标签层级和兄弟元素中的顺序

功能如下:

  • 1

  • 2

    3

    4

如果传入id="span_3"的元素,生成的xpath是body>ul[0]>li[0]>span[2] 实现如下文js代码,需引入jquery

function getPath($ele) {

function path(el, obj) {

if (el[0].nodeName === 'BODY') {

obj['BODY'] = ''

return obj

} else if (el.parent()[0].nodeName === 'BODY') {

var children = el.parent().children()

for (var i = 0, len = children.length; i < len; i++) {

if (el[0] === children[i]) {

obj[el[0].nodeName] = i

}

}

obj['BODY'] = ''

return obj

} else {

var children = el.parent().children()

for (var i = 0, len = children.length; i < len; i++) {

if (el[0] === children[i]) {

obj[el[0].nodeName] = i

}

}

path(el.parent(), obj)

}

}

let o = {};

path($ele, o)

var str = ''

for (var k in o) {

if (o[k] === '') {

str += k + "&"

} else {

str += k + "[" + o[k] + "]" + "&"

}

}

return str.trim().split("&").reverse().join(">").slice(1).toLowerCase()

}

// 使用

console.log(getPath($('#test')))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值