2010-12-29 1 views
0

私のツリーでは、jqueryの助けを借りて作成しています。親ノードを削除すると、直下の子が親になります。ツリー内のノードを削除してもレベルが維持されない

しかし、直系の子供がすべての兄弟と同じレベルの兄弟/兄弟を持つ場合は、ルートノードにする必要があります.i私の例ではもっと明確になると思います。

    • B
      • C
    • D
    • 電子

私の木としてこれを考える 私が望むのは、もし私がb、dよりもeを削除すると、eは個々のルートノードになるはずです そしてcはbの下に来るはずです。

私はコードを貼り付けていますが、ルートノードのものは実現しますが、 はbを同じレベルにします。

 var liFirst = $(spnElement).parents('li:first'); 
     $(childPrsnt).insertBefore(liFirst); 

     $(spnElement).parents('li:first').remove(); 
     $(childPrsnt).find('li').unwrap('ul:first'); 

答えて

1

あなたが唯一の直接の子(ないすべての子孫)、その代わりに、このようなここ.find()使用.children()、の希望:

var liFirst = $(spnElement).parents('li:first'); 
$(childPrsnt).insertBefore(liFirst); 

$(spnElement).closest('li').remove(); 
$(childPrsnt).children('li').unwrap(); 

はまた、:first.closest()代わりに.parent()の使用を注意してください同じ要素を得るのは単なる安価な方法です。

関連する問題