【发布时间】:2013-08-16 18:33:53
【问题描述】:
我创建了一个带有 JSON 对象的 Jquery jstree。我的树工作正常
创建 jstree
$("#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"));
});
现在我想要每个选中节点的“id”和“data”值。我试图写一些东西,但不幸的是这不起作用。请帮助我如何实现这一目标。
获取检查节点
$("#tree").jstree("get_checked",null,true).each(function () {
alert(this.data);
alert(this.id);
});
【问题讨论】:
-
我已经看到了。但在我的情况下,“this.id”和“this.data”即将失效。
-
试试 console.log(this);这应该有助于为您指明正确的方向
-
@Rooster 我已经按照你的建议进行了尝试。它在控制台中给了我“
- ”。它的含义是什么。我的代码中的问题在哪里。请帮帮我。
-
jstree 模仿复选框,除非您设置参数告诉它使用真实的复选框。也许你有。你可以试试 console.log($(this).find('input[type="checkbox"]'));如果它的长度是 1,只需从中获取 id 和数据,如果它为 0,那么您需要从与 li 元素相关的任何存储位置获取 id 和数据。