2
語境依靠ID,類或內容:如何查找和檢索節點位置,而在JavaScript
我需要保持一個用戶&的節點選擇能夠再取回。
如果在html節點上有一個id,我會使用它。
但是,如果沒有ID,問題就會出現。我需要能夠標記該節點&即使在頁面刷新後也能夠找回它。
我嘗試了一些與childnodes的事情,但我失敗了迄今。
語境依靠ID,類或內容:如何查找和檢索節點位置,而在JavaScript
我需要保持一個用戶&的節點選擇能夠再取回。
如果在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];
}