ztree中怎样获取选中节点的父节点及自己的index

ztree中怎样获取选中节点的父节点及自己的index,第1张

1、首先准备一个ztree结构树,如下图所示

2、接下来看一下这里的代码,如下图所示,这里用的是angular和ztree的搭配。

3、接着可以通过getCheckedNodes来获取所有选中的节点,如下图所示。

4、然后可以打断点看一下,这里获取的是所有选中的节点,包括父节点,如下图所示。

5、接着可以看某一条记录里面都有isParent属性,这是判断是不是父节点的属性,如下图所示。

6、最后就可以通过上面的线索获取所有的最后一级节点了,如下图所示。

jquery获取父元素比如parent(),parents,closest(),这些都可以查找父元素或节点,具体步骤如下:

一.parent([expr])

用一个包含着所有匹配元素的唯一父元素的元素集合。

你用可选的表达式来筛选。

如下:

1.$('#item1').parent().parent;

二.parent

得到含有子元素或者文本的元素

如下:

1.$('li:parent')

2.parents([expr])

得到一个包含着所有匹配元素的祖先元素的元素集合。可以通过一个可选的表达式进行筛选。

如下:

1.$('#items').parents('.parent1')

三.closest([expr])

closest会首先检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则向上查找父元素,一层一层往上,直到找到匹配选择器的元素。如果什么都没找到则返回一个空的jQuery对象。

假设你系统里数据库请求的函数是 pdo_query (你自己根据情况调整),表名是tblcate

另外,这段代码使用到了array_column函数,该函数从php5.5起才有,如果你的版本较低,要找一个兼容函数放到函数库里(官方文档评论中就有实现)

以下是代码文本 如果复制过去出现T_VARIABLE错误,就是代码中字符被系统混掉了,你要重新手打一下

//这里根据你的意思,应该是选出没有下级的节点,如果需要全部或其它的,你根据情况修改,不影响后面的其它 *** 作

$selectedNodes = pdo_query("select * from tblcate where pid not in(select pid from tblcate)")

//选出全部节点

$allNodes = pdo_query("select * from tblcate ")

//将节点数据使用id索引,方便获取

$allNodes = array_column($allNodes, NULL, 'id')

foreach($selectedNodes as &$node){

$tree = getParentNode($node['pid'])

//这里的$tree 是上级名称拼起来的,不包含本级名称,如要包含,在后面附加上就行了

$node['tree'] = implode(',',$tree)

}

unset($node)

var_export($selectedNodes )

function getParentNode($pid){

global $allNodes

$pnodes=[]

if($pid>0 &&isset($allNodes[$pid])){

$pNode = $allNodes[$pid]

$pnodes[]= $pNode['name']

$rnodes = getParentNode($pNode['pid'])

if(!empty($rnodes)){

$pnodes = array_merge($pnodes,$rnodes)

}

}

return $pnodes

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11515245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存