如何找到&;在不依赖javascript中的id、类或内容的情况下检索节点位置
背景:如何找到&;在不依赖javascript中的id、类或内容的情况下检索节点位置,javascript,Javascript,背景: 我需要保留用户的节点选择&以便以后能够检索它 如果html节点上有id,我将使用它 但是当没有ID时问题就出现了。我需要能够标记这个节点&即使在页面刷新后也能够找到它 我尝试了几项有关childnodes的操作,但到目前为止我失败了。您可以使用节点相对于其兄弟节点的位置在dom中定位它。处理嵌套元素时,只需在节点位置前面加上相对于其同级的父位置。因此,最终的节点标识符如下:2/0/4/1,其中每个/对应一个额外的深度级别。以下是一个工作示例: function getNodePosi
- 我需要保留用户的节点选择&以便以后能够检索它
- 如果html节点上有id,我将使用它
- 但是当没有ID时问题就出现了。我需要能够标记这个节点&即使在页面刷新后也能够找到它
我尝试了几项有关childnodes的操作,但到目前为止我失败了。您可以使用节点相对于其兄弟节点的位置在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];
}