gpt4 book ai didi

javascript - 在 Jquery 中获取元素的唯一选择器

转载 作者:IT王子 更新时间:2023-10-29 03:00:23 25 4
gpt4 key购买 nike

我想创建一个类似于记录器的东西,它可以跟踪用户的所有操作。为此,我需要识别用户与之交互的元素,以便我可以在以后的 session 中引用这些元素。

用伪代码来说,我希望能够做如下的事情

示例 HTML(可以很复杂):

<html>
<body>
<div class="example">
<p>foo</p>
<span><a href="bar">bar</a></span>
</div>
</body>
</html>

用户点击某些东西,比如链接。现在我需要识别被点击的元素并将它的位置保存在 DOM 树中供以后使用:

(any element).onclick(function() {
uniqueSelector = $(this).getUniqueSelector();
})

现在,uniqueSelector 应该是这样的(我不介意它是 xpath 还是 css 选择器样式):

html > body > div.example > span > a

这将提供保存该选择器字符串并在以后使用它的可能性,以重播用户所做的操作。

这怎么可能?

更新

得到我的答案:Getting a jQuery selector for an element

最佳答案

我会自己回答这个问题,因为我找到了一个我必须修改的解决方案。以下脚本正在运行并基于 script of Blixt :

jQuery.fn.extend({
getPath: function () {
var path, node = this;
while (node.length) {
var realNode = node[0], name = realNode.name;
if (!name) break;
name = name.toLowerCase();

var parent = node.parent();

var sameTagSiblings = parent.children(name);
if (sameTagSiblings.length > 1) {
var allSiblings = parent.children();
var index = allSiblings.index(realNode) + 1;
if (index > 1) {
name += ':nth-child(' + index + ')';
}
}

path = name + (path ? '>' + path : '');
node = parent;
}

return path;
}
});

关于javascript - 在 Jquery 中获取元素的唯一选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com