我在获取jstree模型的选定节点的数据时遇到问题。
<script type="text/javascript">
$('#preview').on("changed.jstree", function (e, data) {
console.log(data.selected);
console.log(data.selected.attr("text"));
});
</script>
第一个控制台日志显示“[js1_1]”或“[js1_2]”,具体取决于所选节点。但第二个日志“未定义不是一个函数”; /我尝试了很多不同的方法,但我没有获得节点文本(标题)或任何其他信息
我将模型列表发送为json,它看起来像这样:
Public Class JsTreeModel
Public Property text As String
Public Property icon As String
Public Property Id As String
Public Property PId As String
Public Property ParentId As String
Public Property Status As Integer
End Class
有人有解决方案吗?
更新jstree代码
<script type="text/javascript">
$(document).ready(function () {
$('#WhenRemoving').toggle($('.RemoveCheckbox').is(":checked"));
$('#WhenAdding').toggle(!$('.RemoveCheckbox').is(":checked"));
$('#preview').jstree({
'core': {
'data': {
'url': '/TreeTest/TreePreview/',
'data': function (node) {
return node;
}
}
}
}).bind("loaded.jstree", function (event, data) {
$(this).jstree("open_all");
})
});
</script>
当我将其添加到我的jstree时,我可以在html div中看到所选的名称节点
.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);
}
$('#event_result').html('Selected: ' + r.join(', '));
})
});
答案 0 :(得分:16)
以上都没有为我工作。 这很有效:
$(treeID).jstree().get_selected(true)[0].text;
答案 1 :(得分:3)
而不是
data.selected.attr("text")
试试这个
data.selected.text()
您还可以使用以下选项获取选定的jstree
节点文本:
console.log($("#preview").jstree("get_selected").text());
或者只是绑定select_node.jstree
,如图所示
.bind("select_node.jstree", function (NODE, REF_NODE) {
var a = $.jstree._focused().get_selected();
}
答案 2 :(得分:2)
简单地获取所有选定的ID使用以下代码
var selectedData = [];
var selectedIndexes;
selectedIndexes = $("#jstree").jstree("get_selected", true);
jQuery.each(selectedIndexes, function (index, value) {
selectedData.push(selectedIndexes[index].id);
});
现在,您已在&#34; selectedData&#34;中找到了所有选定的ID。变量
答案 3 :(得分:0)
的console.log(data.instance.get_node(data.selected [0])。文本)
答案 4 :(得分:0)
添加插件:
"plugins": ["changed"]
代码:
$('#container').on('changed.jstree',function(e,data){
alert(data.node.text);
});