vue获取被点击元素dom定位路径
时间: 2023-10-16 08:07:35 浏览: 100
可以使用 `event.target` 获取被点击的元素,然后通过该元素的 `parentNode` 属性逐级向上查找父元素,直到找到根节点为止。可以使用 `nodeName` 属性来判断当前节点的类型,从而得到定位路径。
以下是示例代码:
```javascript
function getDomPath(el) {
const path = []
while (el && el.nodeName !== 'HTML') {
let selector = el.nodeName.toLowerCase()
if (el.id) {
selector += '#' + el.id
} else if (el.className && typeof el.className === 'string') {
selector += '.' + el.className.trim().replace(/\s+/g, '.')
}
path.unshift(selector)
el = el.parentNode
}
return path.join(' > ')
}
document.addEventListener('click', function(event) {
const path = getDomPath(event.target)
console.log(path)
})
```
在上述示例代码中,我们使用了 `document.addEventListener` 监听了点击事件,然后通过 `getDomPath` 函数获取被点击元素的定位路径,并输出到控制台中。在 `getDomPath` 函数中,我们通过 `while` 循环不断向上查找父元素,并将每一级父元素的选择器存储到 `path` 数组中,最后通过 `join` 方法将所有选择器连接起来。在查找父元素时,我们通过 `nodeName` 属性来判断当前节点的类型,如果是元素节点,我们就可以获取其标签名,并进一步判断其是否有 `id` 或 `className` 属性,从而得到选择器。
阅读全文