[英]How to get checked nodes in jquery jstree
我創建了一個 jquery jstree,它運行良好。 現在的問題是如何獲取已檢查節點的詳細信息。
對於創建 JStree 的代碼是:
$(function () {
$("#tree").jstree({
"json_data" : {
"data" : [
{"data":"pe_opensourcescanning","id":0,"pId":-1,"children": [{"data":"tags","id":30,"pid":0},{"data":"branches","id":29,"pid":0},{"data":"trunk","id":1,"pid":0,"children":[{"data":"import-export","id":28,"pid":1},{"data":"custom_development","id":12,"pid":1},{"data":"Connectors","id":7,"pid":1},{"data":"support","id":6,"pid":1},{"data":"Installation-Configuration","id":5,"pid":1},{"data":"backup","id":2,"pid":1}]}]}
]
},
"plugins" : [ "themes", "json_data", "checkbox", "ui" ]
}).bind("select_node.jstree", function (e, data) { alert(data.rslt.obj.data("id")); });
現在,在獲取已檢查節點時,我需要這些已檢查元素的所有屬性值。 比如說“標簽”,json 對象看起來像 {"data":"tags","id":30,"pid":0},所以如果用戶選擇標簽,我需要“data”和“id”的值. 我曾嘗試編寫一些代碼,但不幸的是這不起作用。
獲取檢查節點。
$("#" +div2.childNodes[i].id).jstree("get_checked",null,true).each
(function () {
alert(this.data);
alert(this.id);
});
請給我一個解決方案。
正如 jstree 的作者 (Ivan Bozhanov) 在關於 get_checked 的 google-Groups Discussion上指出的那樣,也可以使用以下方法來實現:
$('#tree').jstree(true).get_selected();
這將返回一個 ID 列表,例如 ["j1_2"] 或 ["j1_2", "j1_3", "j1_1"]
查看 Ivan Bozhanov本人的小提琴: jsfiddle-Example get_selected
function submitMe(){
var checked_ids = [];
$("#server_tree").jstree("get_checked",null,true).each
(function () {
checked_ids.push(this.id);
});
doStuff(checked_ids);
通過這一次jstree 谷歌組
$.each($("#jstree_demo_div").jstree("get_checked",true),function(){alert(this.id);});
$('#dvTreeStructure').on('changed.jstree', function (e, data) {
var i, j, r = [];
for (i = 0, j = data.selected.length; i < j; i++) {
r.push(data.instance.get_node(data.selected[i]).text.trim());
}
alert('Selected: ' + r.join(', '));
}
在使用get_checked
或get_selected
將布爾值傳遞為 false 以獲取整個節點,如果發送為 true,它將僅返回節點 ID。
你看看https://www.jstree.com/api/#/?q=checkbox&f=get_checked([full])
您還可以查看https://everyething.com/Example-of-jsTree-to-get-all-checked-nodes以了解不同類型的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.