gpt4 book ai didi

javascript - 如何在不依赖 id、class 或 javascript 内容的情况下查找和检索节点位置

转载 作者:行者123 更新时间:2023-11-29 22:08:35 25 4
gpt4 key购买 nike

上下文:

  • 我需要保留用户的节点选择并能够在以后检索它。

  • 如果 html 节点上有 id,我将使用它。

  • 但是当没有 ID 时,问题就来了。我需要能够标记此节点并且即使在页面刷新后也能找到它。

我尝试了一些关于子节点的事情,但到目前为止我都失败了。

最佳答案

您可以使用节点相对于其兄弟节点的位置在 dom 中定位它。在处理嵌套元素时,您只需在节点位置前加上其父节点相对于其兄弟节点的位置。所以你最终得到一个节点标识符看起来像这样: 2/0/4/1 其中每个 / 对应一个额外的深度级别。这是一个工作示例:

function getNodePosition(node){    
var node = $(node);
var result;
var parent = node.parent();
var siblings = parent.children();
var pos = siblings.index(node);
result = '/' + pos;

if(parent.length && !parent.is('body')){
result = getNodePosition(parent) + result;
}
return result;
}

function getNodeByPosition(position){
var node = $('body');
var layers = position.substring(1).split('/');
$.each(layers, function(index, val){
val = parseInt(++val);
node = node.find(':nth-child(' + val +')')
});
return node[0];
}

Jsfiddle

关于javascript - 如何在不依赖 id、class 或 javascript 内容的情况下查找和检索节点位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555533/

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