如何读取具有部分选定子节点的父节点
How can I read parent nodes with partly selected child nodes
我在代码中使用dynaTree http://wwwendt.de/tech/dynatree/index.html 来显示一个2级树。 此树显示在带有checkboxes
的selectMode = 3
中,当用户选中节点复选框时,其父级将变为gray mode
。
在下一阶段,当用户单击按钮时,我将把所有选定的节点发送到服务器进行处理。我想做的是发送所有gray mode
复选框。
如何实现这一目标?
编辑:这是您需要的所有代码
<html>
<head>
<link type="text/css" href="../css/ui.dynatree.css" rel="stylesheet">
<script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="../js/jquery.dynatree.min.js"></script>
<script type="text/javascript">
var treeData = [
{ key: "key1", title: "Text 1" },
{ key: "Key2", title: "Text 2",
children: [
{ key: "Key2_1", title: "Text 2_1" },
{ key: "Key2_2", title: "Text 2_2" },
]
},
];
$(function () {
$("#tree").dynatree({
checkbox: true,
selectMode: 3,
children: treeData,
imagePath: "../images/Tree/",
onSelect: function (select, node) {
var selKeys = $.map(node.tree.getSelectedNodes(), function (node) {
return node.data.key;
});
$('#textField').val(selKeys.join(", "));
}
});
});
</script>
</head>
<body>
<div id="tree"></div>
<input type="text" id="textField" value="" /><input type="button" id="button" onclick="alert($('#textField').val())" value="Send" />
</body>
</html>
选择 Key2_1
时,Key2
转到gray state
,您将看到Key2_1
已添加到文本框textField
,我也想textField
字段中使用 Key2。
注意:选择 Key2_1
和 Key2_2
的两个子节点也将选择父节点 (key_2),但当它处于gray mode
似乎dynaTree没有查找部分选定节点的方法。另一种解决方案是查找此类节点的类名。默认情况下,如果部分选定节点的类名未更改,它将dynatree-partsel
,但是具有完全选择子节点的节点也分配了该类,因此我们需要选择其类中没有dynatree-selected
的节点。
脏的解决方案将在选择方法定义上更改为:
onSelect: function (select, node) {
var selKeys = $.map(node.tree.getSelectedNodes(), function (node) {
return node.data.key;
});
var partsel = new Array();
$(".dynatree-partsel:not(.dynatree-selected)").each(function () {
var node = $.ui.dynatree.getNode(this);
partsel.push(node.data.key);
});
selKeys = selKeys.concat(partsel);
$('#textField').val(selKeys.join(", "));
}
var parent = node.getParent();
var parentnode = parent.data.key;
在parentnode
变量中,您将获得父节点的值
相关文章:
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- 仅使用某些子节点访问xml中父节点的子节点
- 使用Javascript设置带有子节点的父节点的类's文本等于.
- 如何确定父节点是否有子节点
- 在没有 jquery 的情况下更改子节点(父节点具有 ID)中的链接文本
- 如何在JavaScript中删除子节点触发点击事件时的父节点
- 获取下一个不工作Javascript DOM的同级父节点的子节点
- 取消绑定父节点和子节点
- jstree jquery插件-获取父节点的所有子节点和子节点
- 使用jquery检索父节点的子节点
- 如何在所有父节点上获取文件夹图标,在所有子节点上获取文件夹加图标(左侧的图标)
- Kendo TreeView-只向没有子节点的父节点添加删除图像图标
- 如何在普通 JavaScript 中获取内部子节点的最外层父节点
- 子节点不会离开父节点
- 比较父节点和子节点的相似性
- hammer.js - 父节点和子节点上的不同滑动处理程序
- 在树布局中选择子节点的所有路径和父节点
- dojodijittree:如何管理父节点、子节点和叶节点
- 如何创建父节点(=父节点的兄弟节点)
- cloneNode并将所有节点(父节点+子节点)的值相加.Javascript