<!DOCTYPE html>
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<link rel="stylesheet" href="bower_components/ztree/css/zTreeStyle/demo.css" type="text/css">
<link rel="stylesheet" href="bower_components/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="bower_components/ztree/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="bower_components/ztree/js/jquery.ztree.core-3.5.js"></script>
<SCRIPT type="text/javascript"> var setting = {
data: {
key: {
title: "t"
},
simpleData: {
enable: true
}
},
view: {
fontCss: getFontCss
}
}; var nodes =[
{ id:1, pId:0, name:"2", t:"id=1", open:true},
{ id:11, pId:1, name:"22", t:"id=11"},
{ id:12, pId:1, name:"24", t:"id=12"},
{ id:13, pId:1, name:"26", t:"id=13"},
{ id:14, pId:1, name:"28", t:"id=14"},
{ id:2, pId:0, name:"节点搜索演示 2", t:"id=2", open:true},
{ id:21, pId:2, name:"可以只搜索一个节点", t:"id=21"},
{ id:22, pId:2, name:"可以搜索节点集合", t:"id=22"},
{ id:23, pId:2, name:"搜我吧", t:"id=23"},
{ id:3, pId:0, name:"节点搜索演示 3", t:"id=3", open:true },
{ id:31, pId:3, name:"我的 id 是: 31", t:"id=31"},
{ id:32, pId:31, name:"我的 id 是: 32", t:"id=32"},
{ id:33, pId:32, name:"我的 id 是: 33", t:"id=33"}
]; function focusKey(e) {
if (key.hasClass("empty")) {
key.removeClass("empty");
}
}
function blurKey(e) {
if (key.get(0).value === "") {
key.addClass("empty");
}
}
var lastValue = "", nodeList = [], fontCss = {};
function clickRadio(e) {
lastValue = "";
searchNode(e);
}
function searchNode(e) { var zTree = $.fn.zTree.getZTreeObj("sys"); if (!$("#getNodesByFilter").attr("checked")) {
//如果被选中getNodesByFilter方法 var value = $.trim(key.get(0).value);
//得到搜索框中的值,传给value
var keyType = "";
//初始化查询条件 if ($("#name").attr("checked")) {
keyType = "name";
} else if ($("#level").attr("checked")) {
keyType = "level";
value = parseInt(value);
} else if ($("#id").attr("checked")) {
keyType = "id";
value = parseInt(value);
//如果是根据level和id查的则强制转换为int类型
} if (key.hasClass("empty")) {
//如果搜索框为空,则value为空
value = "";
} if (lastValue === value) return;
lastValue = value;
//如果查询值不变,则直接返回下次结果 if (value === "") return;
updateNodes(false); if ($("#getNodeByParam").attr("checked")) {
//如果被选中getNodesByParam方法 var node = zTree.getNodeByParam(keyType, value); //把指定的了结点(查到的第一个)给node if (node === null) { nodeList = [];
} else { nodeList = [node];
} } else if ($("#getNodesByParam").attr("checked")) { nodeList = zTree.getNodesByParam(keyType, value);
//把指定的结点给nodeList } else if ($("#getNodesByParamFuzzy").attr("checked")) { //模糊查询 nodeList = zTree.getNodesByParamFuzzy(keyType, value);
} } else { updateNodes(false);
nodeList = zTree.getNodesByFilter(filter);
} updateNodes(true); }
function updateNodes(highlight) { //如果结点数据变了,则动态更新所有ztree结点数据 var zTree = $.fn.zTree.getZTreeObj("sys"); for( var i=0, l=nodeList.length; i<l; i++) { nodeList[i].highlight = highlight; // 高亮显示查到的结果
zTree.updateNode(nodeList[i]);
}
} function getFontCss(treeId, treeNode) { return (!!treeNode.highlight) ? {color:"#A60000", "font-weight":"bold"} : {color:"#333", "font-weight":"normal"};
} function filter(node) { //过滤器
return !node.isParent && node.isFirstNode;
} var key;
$(document).ready(function(){
$.fn.zTree.init($("#sys"), setting, nodes); key = $("#key");
key .bind("focus", focusKey)
.bind("blur", blurKey)
.bind("propertychange", searchNode)
.bind("input", searchNode); $("#name").bind("change", clickRadio);
$("#level").bind("change", clickRadio);
$("#id").bind("change", clickRadio); $("#getNodeByParam").bind("change", clickRadio);
$("#getNodesByParam").bind("change", clickRadio);
$("#getNodesByParamFuzzy").bind("change", clickRadio);
$("#getNodesByFilter").bind("change", clickRadio);
}); </SCRIPT>
</HEAD> <BODY>
<div class="content_wrap"> <div class="zTreeDemoBackground left">
<ul id="sys" class="ztree"></ul>
</div> <div class="right">
<ul class="list">
<input type="text" id="key" value="" class="empty" /><br/>
<!--搜索框--> <input type="radio" id="name" name="keyType" class="radio" checked /><span>name</span><br/>
<!--搜索依据--> <input type="radio" id="level" name="keyType" class="radio" /><span>level</span><br/>
<input type="radio" id="id" name="keyType" class="radio" /><span>id</span><br/> <input type="radio" id="getNodeByParam" name="funType" class="radio" /><span>getNodeByParam</span><br/>
<input type="radio" id="getNodesByParam" name="funType" class="radio" /><span>getNodesByParam</span><br/>
<input type="radio" id="getNodesByParamFuzzy" name="funType" class="radio" checked /><span>getNodesByParamFuzzy </span><br/>
<input type="radio" id="getNodesByFilter" name="funType" class="radio" /><span>getNodesByFilter</span><br/> </ul>
</div>
</div>
</BODY>
</HTML>

javascript入门 之 ztree(七 结点的查询)的更多相关文章

  1. javascript入门 之 ztree (六 结点的点击和展开/折叠事件)

    1.注意: 测试点击事件时,如果要测试取消选中和追加选中,如果按住ctrl和win键无用,则需要先用鼠标左键按住,然后,在松开左键的前几毫秒按住ctrl键便可! <!DOCTYPE html&g ...

  2. javascript入门 之 zTree(十四 增删查改)(二)

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - addNodes / editName / rem ...

  3. javascript入门 之 zTree(十三 移动/复制事件)

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - copyNode / moveNode</T ...

  4. javascript入门 之 zTree(十二 托拽事件(二))

    1.逻辑可能有不完善的地方,如果发现,请指出. <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - d ...

  5. javascript入门 之 zTree(十一 托拽事件(一))

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - drag & drop</TITLE ...

  6. javascript入门 之 ztree (十 checkbox选中事件)

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeCheck / onCheck< ...

  7. javascript入门 之 ztree(三 简单json数据)

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - Standard Data </TITLE& ...

  8. javascript入门 之 zTree(十四 增删查改)(一)

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeEditName / beforeRe ...

  9. javascript入门 之 ztree (九 单/复选框问题)

    <!DOCTYPE html> <HTML> <HEAD> <meta http-equiv="content-type" content ...

随机推荐

  1. vue中nextTick的使用场景

    https://blog.csdn.net/bingqise5193/article/details/100212278

  2. .tar.xz文件的创建和解压

    创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz 解压ta ...

  3. javascript中事件概述

    事件就是用户或浏览器自身执行的某种动作.诸如click.load.和mouseover,都是事件的名字.而响应某个事件的函数就叫做事件处理程序(或事件侦听器).事件处理程序的名字以"on&q ...

  4. 微信小程序开发(四)学习基本组件

    现在我们已经学会使用工具了,再来了解,测试一下微信小程序的常用组件,所谓组件,就是微信团队已经开发好的一些常用标签,我们只需要掌握用法就可以了,当然,以后学得深入了,也可以开发自己的组件,让其他人使用 ...

  5. iOS包重签名工具,ipa文件重签名,快速签名,SignTool签名工具,好用的签名工具,App重签名

    新工具 ProjectTool 已上线 这是一款快速写白包工具,秒级别写H5游戏壳包,可视化操作,极易使用,支持Swift.Objecive-C双语言 QQ交流群:811715780 进入 Proje ...

  6. cmdb 配置

    cmdb客户端文件夹创建 客户端:client:-bin:启动文件-src:源文件(核心代码)-conf:配置文件-lib:全局的一些方法 和配置-test:测试文件

  7. [Docker4] Docker-machine进行多docker host管理

    Docker Machine Docker machine就是自动化安装docker daemon Docker machine的provider docker machine provider 常见 ...

  8. B - Yet Another Palindrome Problem的简单方法

    You are given an array aa consisting of nn integers. Your task is to determine if aa has some subseq ...

  9. 基础的linux命令(一)

    我练习使用的 Linux 系统是 CentOS 7 它是通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统. 首先你需要一台Linux虚拟机,如果没有,也没关系,点这里 一.命令格 ...

  10. git push错误,如何回滚

    --> git push Counting objects: 81, done.Delta compression using up to 4 threads.Compressing objec ...