// 获取搜索关键字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')
时间: 2024-01-23 20:03:20 浏览: 120
Testshape.rar_JavaScript/JQuery_Java_
这个错误通常是因为搜索关键字为空引起的。您可以添加一个判断语句来避免这个错误:
```
// 获取搜索关键字
var keyword = $("#keyword").val().trim();
if (keyword === '') {
return;
}
// ...
```
这样如果搜索关键字为空,就直接退出搜索方法,避免后面的代码出现错误。
阅读全文