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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)