小提琴:http://jsfiddle.net/p35cobgx/3/如何爲每個嵌套的孩子存儲所有父母的引用?
下面是我的樹結構:
Node
Node-1
Node-1-1......
現在我想存回所有家長參考每個像下面的節點:
節點
節點1(應該只存儲節點的引用,因爲這是節點1的最後父節點 )
節點1-1(應存儲所有父節點的引用,即節點-1和節點 ,因爲節點是節點1-1的最後一個父節點)。
但我的代碼的問題是我無法存儲對節點1-1的節點的參考。
小提琴:http://jsfiddle.net/p35cobgx/3/如何爲每個嵌套的孩子存儲所有父母的引用?
下面是我的樹結構:
Node
Node-1
Node-1-1......
現在我想存回所有家長參考每個像下面的節點:
節點
節點1(應該只存儲節點的引用,因爲這是節點1的最後父節點 )
節點1-1(應存儲所有父節點的引用,即節點-1和節點 ,因爲節點是節點1-1的最後一個父節點)。
但我的代碼的問題是我無法存儲對節點1-1的節點的參考。
使用此條件來分配父:
obj.parent = data.parent || null;
我不知道如果這正是你想要的答案,但在這裏它是:
您可以通過訪問父節點:
node.parentNode
這是一個屬性並擁有父節點的引用。
而且,它有時更好的訪問,而不是節點父元素,因爲空格也可以是一個節點,以便您可以使用此屬性:
node.parentElement
節點是js對象而不是dom元素。您提供的代碼適用於dom元素 – quirimmo
我會使用的算法是隻存儲父節點中的直接父節點。
所以,如果A是父下向C
B和B這使得它A-> B->Ç
C.parent = B; B.parent = A;
如果我想的C所有的父母,我會做以下
var parentArray = getParent(C).slice();
this.parents = [];
//use parentArray as you like now!
function getParent(obj){
if(obj.parent){
this.parents.push(obj.parent) //this.parents is an array
getParent(obj.parent);
}else{
return this.parents;
}
}
所以,如果你撥打電話的getParent(C);你得到它的所有父母B和A. 如果你打電話getParent(B);你只得到A. 如果你打電話getParent(A);你沒有父母,因爲它沒有父母。
希望有幫助!
並不清楚你的要求。如果節點1-1具有對節點1的引用並且節點1具有對節點的引用,則節點1-1已經通過簡單地查看節點1的父節點而具有對節點的引用。爲什麼再次存儲它? –
這個例子可能會幫助你(第二個演示):https:// stackoverflow。問題/ 19691917/how-do-display-a-collapsible-tree-in-angularjs-bootstrap/19692791#19692791 –
@MaximShoustin謝謝你的參考,但我沒有看到你在哪裏存儲引用所有父母在那你能給我一些見解嗎? –