语境:
我需要保留用户的节点选择并能够稍后检索它。
如果 html 节点上有一个 id,我将使用它。
但是当没有ID时问题就来了。我需要能够标记这个节点并且即使在页面刷新之后也能够找到它。
我用子节点尝试了几件事,但到目前为止我失败了。
语境:
我需要保留用户的节点选择并能够稍后检索它。
如果 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];
}