ztree 展开节点的时候怎么让这个节点是选中状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ztree 展开节点的时候怎么让这个节点是选中状态相关的知识,希望对你有一定的参考价值。

参考技术A 1. 初始化的数据设置 默认为勾选状态
var nodes = [
"id":1, "name":"test1", checked:true ,
"id":2, "name":"test2", checked:true
]

jstree中想要选中子节点,父节点就会变成选中状态,需要如何修改。

现在是选中了子节点会有个方块的状态,要全选才会是选中状态。新手看不太懂js源码,求jstree大神打救。
我用的是jstree4.1.0 ,方块状态的父节点用get_checked获取不了,只能获取子节点id。我要的是只要有选中子节点,子节点和父节点的id都能获取。

jstree的数据是获取数据库表的数据的。根据子节点的id来获取其parent的id也是可以的。但是我想要知道的是如何修改jstree.js,让选中一个子节点,父节点就会为checked状态。

修改方法:

JQuery
$('#子节点id').parent().attr('id');//通过子元素id获取父元素
js
document.getElementById("子节点id").parentNode.getAttribute("id");

1、JS即Javascript,Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

2、能够具有交互性,能够包含更多活跃的元素,就有必要在网页中嵌入其它的技术。如:Javascript、VBScript、Document Object Model(DOM,文档对象模型)、Layers和 Cascading Style Sheets(CSS,层叠样式表),这里主要讲Javascript。那么Javascript是什么东西?Javascript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。

参考技术A JQuery
$('#子节点id').parent().attr('id');//通过子元素id获取父元素
js
document.getElementById("子节点id").parentNode.getAttribute("id");
要下班了,没验证,大致应该是这样追问

谢谢,不过我说的id是后台数据库表中的id列,不是html标签上的id。这种方法应该是获取不到的。

追答

a.你的数据库id是否就是加载到前台页面的标签id?如果是,那上面的方法应该是可以得到父id的,不管你是不是从数据库调用的id
b.你要用完整版的jstree,压缩版的不好改(反正我看jquery.min.js我是看得一脸懵~B)
你可以在完整的jstree.js中搜索all_checked(好像是这个),选中所有子节点时的方法,参照它去修改选中不全选的方法(不在前面就在后面)
下班去玩了,具体修改方法我也就不研究了,靠你自己了。

追问

谢谢

本回答被提问者和网友采纳
参考技术B

需要自己写一个方法,获取全部的节点,包括父节点和子节点

//更新获取全部checked节点
$.jstree.core.prototype.get_all_checked = function(full) 
    var tmp=new Array;
    for(var i in this._model.data)
        if(this.is_undetermined(i)||this.is_checked(i))tmp.push(full?this._model.data[i]:i);
    
    return tmp;
;

获取方法

$('#jstree').jstree(true).get_all_checked();  // 这个返回的ID数组
$('#jstree').jstree(true).get_all_checked(true);  //这个返回的是选中的对象数组

参考技术C 你好,问题解决了吗,我也在弄这个,是的要进源代码修改吗

以上是关于ztree 展开节点的时候怎么让这个节点是选中状态的主要内容,如果未能解决你的问题,请参考以下文章

怎么让所有子节点被选中,父节点自动选中 TreeView

怎么让所有子节点被选中,父节点自动选中 TreeView

ztree怎么设置点击节点展开

ztree怎么初始展开某个节点

ztree怎么去掉父节点的radio

ztree可以给定父节点id,然后展开子项的方法吗