jquery js javascript select 无限级 插件 优化foxidea版
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jquery.js" type="text/javascript"></script>
</head>
<body>
<h2>无限级 select demo2</h2> <div id="demo2" style="width:360px; padding:5px; border:3px solid #000; float:left"> </div>
<input type="text" id="txt_value" />
<input type="text" id="txt_text" />
</body>
</html>
<script type="text/javascript">
_doc = document;
var Doc = {};
Doc.Create = function (tagName) {
return _doc.createElement(tagName);
}
Doc.Append = function (dom) {
_doc.body.appendChild(dom);
}
Doc.Get = function (_id) {
return _doc.getElementById(_id);
} //无限级 select 分类
function Select(arr, chg,callback) {
//获得子类 集合(select)
var getSel = function (pid) {
var _select = Doc.Create("select");
_select.options.add(new Option('选择分类', ""));
for (var i = 0; i < arr.length; i++) {
if (arr[i].pid == pid) {
_select.options.add(new Option(arr[i].name, arr[i].id));
}
} var delChildfun = function (obj) { if (obj.child) {
var _child = obj.child; if (_child.parentNode) {
_child.parentNode.removeChild(_child);
}
delChildfun(_child);
}
} _select.onchange = function () {
delChildfun(this);
this.child = getSel(this.options[this.selectedIndex].value);
chg(this.child);
callback(this.options[this.selectedIndex]);
} return _select; } //===================获得节点
var r_arr = [];
var getPidById = function (id) {
for (var i = 0; i < arr.length; i++)
if (arr[i].id == id) return arr[i].pid; return -1;
} var getSelBySid = function (sid) {
var pid = getPidById(sid); var sel = getSel(pid);
for (var i = 0; i < sel.options.length; i++) {
if (sel.options[i].value == sid) {
sel.selectedIndex = i; break;
}
} if (pid > 0) getSelBySid(pid);
r_arr.push(sel);
} this.getDom = function (selectid) {
getSelBySid(selectid || arr[0].id);
for (var i = 0; i < r_arr.length; i++)
if (i + 1 < r_arr.length)
r_arr[i].child = r_arr[i + 1]; return r_arr;
}
} /**==============demo==============**/ var data = [
{ id: 1, name: "前端开发", pid: 0 },
{ id: 2, name: "CSS", pid: 1 },
{ id: 3, name: "JS", pid: 1 },
{ id: 4, name: "HTML", pid: 1 },
{ id: 5, name: "数据库", pid: 0 },
{ id: 6, name: "SQLServer", pid: 5 },
{ id: 7, name: "MYSql", pid: 5 },
{ id: 8, name: "Oracle", pid: 5 },
{ id: 9, name: "PLSQL", pid: 8 }
]; var demo2 = Doc.Get("demo2");
var chg = function (obj) {
if (obj.options.length > 1) {
obj.selectedIndex = 0;
demo2.appendChild(obj);
}
} var sel2 = new Select(data, chg, function (obj) {
$("#txt_value").val(obj.value);
$("#txt_text").val(obj.text); }); var _arr = sel2.getDom(9);
for (var i = 0; i < _arr.length; i++) {
demo2.appendChild(_arr[i]);
}
/**==============demo==============**/ </script>
jquery js javascript select 无限级 插件 优化foxidea版的更多相关文章
- jquery, js轮播图插件Swiper3
轮播图插件Swiper3 HTML代码 如果只是简单的使用轮播图,直接复制我的html代码就可以. 如果想要高级一些,就自己去看文档吧 <!DOCTYPE html> <html l ...
- JQuery/JS插件 jsTree加载树,预先加载,初始化时加载前三级节点,当展开第三级节点时 就加载该节点下的所有子节点
jsTree加载树, 初始化时 加载前三级节点, 当展开第三级节点时 就加载该节点下的所有子节点 html: <!DOCTYPE html> <html> <head&g ...
- Jquery.validate.js表单验证插件的使用
作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...
- jQuery对标签select优化:实现模糊搜索查询功能
由于select标签中的option条数较多,翻页查询比较麻烦,需要对select标签进行优化,解决方法是通过增加模糊查询功能来提高用户体验感. 优化后的界面如下: 在实现这个优化的过程中,参考了两个 ...
- jQuery 是javascript的一个库(常用插件、处理器)
jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery就是javascript的一个库,把我 ...
- JQuery/JS插件 jsTree加载树,普通加载,点一级加载一级
前端: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit ...
- Echo.js – 简单易用的 JavaScript 图片延迟加载插件
Echo.js 是一个独立的延迟加载图片的 JavaScript 插件.Echo.js 不依赖第三方库,压缩后不到1KB大小. 延迟加载是提高网页首屏显示速度的一种很有效的方法,当图片元素进入窗口可视 ...
- Javascript和jQuery WordPress 图片轮播插件, 内容滚动插件,前后切换幻灯片形式显示
用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美的图片轮播效果,希望这些插件 ...
- jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明
jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明 jquery.lazyload.js是一个用JavaScript编写的jQuery插件.它可以延迟加载长页面中的图片 ...
随机推荐
- phpcms 完美实现 导航栏当前栏目高亮
我们在用phpcms做网站的时候,经常碰到导航栏高亮功能,或者侧栏高亮,这个会涉及到几个问题: .栏目列表页子栏目高亮判断,如果当前页面为子栏目,他的顶级栏目如果在导航栏也要高亮. .内容页高亮,这个 ...
- php几个常用的概率算法(抽奖、广告首选)
做网站类的有时会弄个活动什么的,来让用户参加,既吸引用户注册,又提高网站的用户活跃度.同时参加的用户会获得一定的奖品,有100%中奖的,也有按一定概率中奖的,大的比如中个ipad.iphone5,小的 ...
- hdu 4412 2012杭州赛区网络赛 期望
虽然dp方程很好写,就是这个期望不知道怎么求,昨晚的BC也是 题目问题抽象之后为:在一个x坐标轴上有N个点,每个点上有一个概率值,可以修M个工作站, 求怎样安排这M个工作站的位置,使得这N个点都走到工 ...
- linux中socket的理解
对linux中socket的理解 一.socket 一般来说socket有一个别名也叫做套接字. socket起源于Unix,都可以用“打开open –> 读写write/read –> ...
- 直接拿来用!最火的Android开源项目(完结篇)(转)
摘要:截至目前,在GitHub“最受欢迎的开源项目”系列文章中我们已介绍了40个Android开源项目,对于如此众多的项目,你是Mark.和码友分享经验还是慨叹“活到老要学到老”?今天我们将继续介绍另 ...
- dwz的form表单中url的变量替换
form表单中action的地址格式 “__URL__/edit/{xxx}”,大括号内的 “xxx” 就是变量名,主要功能是结合table组件一起使用. 下图中的删除.编辑.修改密码都是用了url变 ...
- 【pom.xml 依赖】使用net.sf.json-lib-2.4-jdk15.jar所需要的其他依赖架包 以及其一直在pom.xml报错的问题
特此声明: json-lib-2.4-jdk15.jar仅它本身不够,必须如下的几个依赖架包都有才能使用!!! 首先 将.json-lib-2.4-jdk15.jar以及其相关的依赖架包的正确配置给出 ...
- python 文件操作总结
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
- UVA - 11488 字典树
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- 分享Kali Linux 2016.2第49周镜像文件
分享Kali Linux 2016.2第49周镜像文件 Kali Linux官方于12月4日发布Kali Linux 2016.2的第49周镜像.这次保持以往规律,仍然是11个镜像文件.默认的Gnom ...