0
我們正在創建一個具有n(任意)級別的樹視圖。敲除js,從樹狀視圖中選擇的項目中查找所有父節點ID
我已採取this tree solution,但現在我堅持一個問題。
我們希望從選定節點獲得所有父節點id
。
任何人都可以請幫我們解決這個問題嗎?
我們正在創建一個具有n(任意)級別的樹視圖。敲除js,從樹狀視圖中選擇的項目中查找所有父節點ID
我已採取this tree solution,但現在我堅持一個問題。
我們希望從選定節點獲得所有父節點id
。
任何人都可以請幫我們解決這個問題嗎?
從我看到的,你可以得到當前選定節點的id,它已經是父母ID的串接。
更換
<div data-bind="with: selected">
Selected Node: <span data-bind="text: name"></span>
</div>
隨着
<div data-bind="with: selected">
Selected Node: <span data-bind="text: name"></span>
Ids: <span data-bind="text: id"></span>
</div>
如果你想與所有父ID的數組,你可以做到以下幾點:
parent
)並將其填入構造函數parentIds
)parentIds
陣列檢查這個代碼(1。 & 2):
function TreeNode(values) {
var self = this;
ko.mapping.fromJS(values, { children: { create: createNode }}, this);
this.expanded = ko.observable(false);
for (var i = 0; i < this.children().length; i++)
this.children()[i].parent = this;
this.parentIds = [];
this.collapsed = ko.computed(function() {
return !self.expanded();
})
}
這(3):
function setParents(rootNode) {
if (ko.isObservable(rootNode.children) && rootNode.children().length)
for (var i = 0; i < rootNode.children().length; i++) {
if (rootNode.children()[i].parent)
rootNode.children()[i].parentIds = rootNode.children()[i].parent.parentIds.slice(0);
rootNode.children()[i].parentIds.push(rootNode.children()[i].parent.id())
setParents(rootNode.children()[i]);
}
}
setParents(root);
您可以檢查here
感謝您的答覆,我想所有的父節點ID。 在這種情況下,如果我點擊ID爲「1.1.2」 >>我要像 1 >> >> 1.1 1.1.2 –
結果的節點上是有辦法以相反的順序來遍歷並獲得所有的所選項目的父母ID? –
我更新了答案 –