var nodes = $('#datagrid').treegrid('getData'); 获取index
时间: 2023-09-21 08:06:29 浏览: 98
您可以通过遍历 treegrid 的节点数据并获取每个节点的 `id` 属性来获取节点的索引值。具体做法是在遍历 treegrid 的过程中,使用 `indexOf` 方法查找当前节点在节点数据中的索引值。示例代码如下:
```javascript
var nodes = $('#datagrid').treegrid('getData');
for (var i = 0; i < nodes.length; i++) {
var node = nodes[i];
var index = nodes.indexOf(node);
console.log('节点 ' + node.id + ' 的索引值为:' + index);
}
```
上述代码中,我们先使用 `getData` 方法获取 treegrid 的全部数据,然后循环遍历每个节点,使用 `indexOf` 方法查找当前节点在节点数据中的索引值,并将其输出到控制台中。通过这种方式,您可以获取每个节点在节点数据中的索引值。请注意,这里的索引值是从 `0` 开始的,与节点的 `id` 属性值可能不同。
相关问题
// 获取搜索关键字var keyword = $("#keyword").val().trim();// 遍历树的所有节点,将匹配到关键字的节点及其所有父节点都保存下来var nodes = [];var treeObj = $.fn.zTree.getZTreeObj("tree");var allNodes = treeObj.transformToArray(treeObj.getNodes());for (var i = 0; i < allNodes.length; i++) { if (allNodes[i].name.indexOf(keyword) > -1) { var parentNode = allNodes[i].getParentNode(); while (parentNode != null) { if ($.inArray(parentNode, nodes) == -1) { nodes.push(parentNode); } parentNode = parentNode.getParentNode(); } nodes.push(allNodes[i]); }}// 创建新的树对象var newTreeSetting = { data: { simpleData: { enable: true } }};var newTreeNodes = [];for (var i = 0; i < nodes.length; i++) { newTreeNodes.push({ id: nodes[i].id, pId: nodes[i].pId, name: nodes[i].name, open: true });}var newTreeObj = $.fn.zTree.init($("#newTree"), newTreeSetting, newTreeNodes);// 在页面中显示新树对象$("#newTree").show(); 报Cannot read properties of undefined (reading 'indexOf')
这个错误通常是因为搜索关键字为空引起的。您可以添加一个判断语句来避免这个错误:
```
// 获取搜索关键字
var keyword = $("#keyword").val().trim();
if (keyword === '') {
return;
}
// ...
```
这样如果搜索关键字为空,就直接退出搜索方法,避免后面的代码出现错误。
var selected = $('#datagrid').treegrid('getSelected') 如何获取 没有子集的列表
您可以使用 treegrid 的方法 `getParent` 来判断一个节点是否有子节点。具体做法是在遍历 treegrid 的过程中,对于每个节点,使用 `getParent` 方法获取它的父节点,如果父节点存在,则说明该节点有子节点,反之则说明该节点没有子节点。示例代码如下:
```javascript
var nodes = $('#datagrid').treegrid('getData');
var leafNodes = [];
for (var i = 0; i < nodes.length; i++) {
var node = nodes[i];
var parent = $('#datagrid').treegrid('getParent', node.id);
if (!parent) {
leafNodes.push(node);
}
}
```
上述代码中,我们先使用 `getData` 方法获取 treegrid 的全部数据,然后循环遍历每个节点,使用 `getParent` 方法获取它的父节点,如果父节点不存在,则说明该节点是一个叶子节点,将其添加到 `leafNodes` 数组中。最终,`leafNodes` 数组中存储的就是所有没有子节点的节点。
阅读全文