環境:
ユーザーのノード選択を保持し、後で取得できるようにする必要があります。
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];
}