// 获取搜索关键字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 21:03:20 浏览: 23
这个错误通常是因为搜索关键字为空引起的。您可以添加一个判断语句来避免这个错误:
```
// 获取搜索关键字
var keyword = $("#keyword").val().trim();
if (keyword === '') {
return;
}
// ...
```
这样如果搜索关键字为空,就直接退出搜索方法,避免后面的代码出现错误。
相关问题
// 获取搜索关键字 var keyword = $("#keyword").val().trim(); // 获取树对象 var treeObj = $.fn.zTree.getZTreeObj("tree"); // 模糊搜索节点 var nodes = treeObj.getNodesByParamFuzzy("name", keyword, null); // 隐藏所有节点 treeObj.hideNodes(treeObj.transformToArray(treeObj.getNodes())); // 显示搜索结果节点 treeObj.showNodes(nodes); // 展开搜索结果节点的所有父节点 treeObj.expandAll(true); ;其中treeObj.hideNodes is not a function
抱歉,我的回答中有误导信息,`hideNodes`方法是zTree v3.5.28及以上版本的方法,如果您使用的是较早的版本,可能并不支持该方法。如果您使用的是较早版本的zTree,可以使用下面这段代码来隐藏所有节点:
```
var nodes = treeObj.transformToArray(treeObj.getNodes());
for (var i = 0; i < nodes.length; i++) {
nodes[i].isHidden = true;
treeObj.updateNode(nodes[i]);
}
```
这段代码将所有节点的`isHidden`属性设置为`true`,然后调用`updateNode`方法更新节点状态。对于显示搜索结果节点和展开搜索结果节点的所有父节点,您可以继续使用`showNodes`和`expandAll`方法。
function sub(){ var phone = $("#phone").val().trim(); var phonenum = $("#phonenum").val().trim(); var idcard = $("#idcard").val().trim(); var username = $("#username").val().trim(); var password = $("#password").val().trim(); var age = $("#age").val().trim(); var sex = $("#sex").val().trim(); var xueyuan = $("#xueyuan").val().trim(); var nianji = $("#nianji").val().trim(); var banji = $("#banji").val().trim(); if(phone == '' || username == '' || password == '' || age == '' || sex == ''){ layer.alert('请把信息填写完整!',{icon: 5}); return; } if($("#phonenum").val().trim().length == 11 ){ }else{ layer.alert('输入正确手机号!',{icon: 5}); return; } if($("#idcard").val().trim().length == 18 ){ }else{ layer.alert('输入正确身份证号!',{icon: 5}); return; } if($("#password").val().trim().length >=6 ){ }else{ layer.alert('密码至少6位!',{icon: 5}); return; } if($("#yzm").val()==$(".box").attr('value')){ }else{ layer.alert('验证码填写错误',{icon: 6}); VerificationCode($(".box"),4); return; }
这段代码是一个 JavaScript 函数,主要用于对用户提交的注册信息进行验证。首先获取用户填写的信息,并使用 trim() 方法去除前后空格。然后判断手机号、身份证号、密码是否符合规定长度。如果不符合,会使用 layer.alert() 方法提示用户重新填写。最后判断验证码是否正确,如果不正确,会重新生成验证码并提示用户重新填写。