这是一个仿携程自定义的数据下拉选择select,对一些比较重要的参数进行的描述,方便初学者

/*

*id : id 当前插件的父元素

*data : json 选择的数据(json格式)

*bool : true/false data数据如果要分离成两个 值为true

*config : 配置data的内部对象(type在bool为true的时候生效)

{

id : 数据字段,

name : 数据名称,

alias : 数据名称首字母,

type : 数据类型

}

*fn : function fn(){} 回调函数,点击生成标签的时执行的函

*/

function YSelect(id,Ydata,bool,config,fn){

var data = [];

Yselect_close = {};

var name_list = {A:[],B:[],C:[],D:[],E:[],F:[],G:[],H:[],I:[],J:[],K:[],L:[],M:[],N:[],O:[],P:[],Q:[],R:[],S:[],T:[],U:[],V:[],W:[],X:[],Y:[],Z:[],其他:[]} //新建数组,防止出现undefind

var YDropdowns = document.getElementById(id);

function Pretreatment(){ //处理数据

var CatalogData = [];

var BrandData = [];

var china = [];

var foreign = [];

for (var i in Ydata) {

if (Ydata[i][config.type] == null)

CatalogData.push(Ydata[i][config.id]+';'+Ydata[i][config.name]+';'+Ydata[i][config.alias])

else

BrandData.push(Ydata[i][config.id]+';'+Ydata[i][config.name]+';'+Ydata[i][config.alias]+';'+Ydata[i][config.type])

};

if (BrandData != "") {

for (var i = 0 ; i < BrandData.length ; i++) {

var str = BrandData[i].split(';')

if (str[3] == 0) china.push(str[0] + ';' + str[1] + ';' + str[2]);

else foreign.push(str[0] + ';' + str[1] + ';' + str[2]);

}

if (bool) {

data = china;

return data;

}else {

data = foreign;

return data;

}

}else{

data = CatalogData;

return data; //返回出数据

}

};

function jsondata(data_name,ida){ //处理Pretreatment返回出的数据

var tit = []; //定义首字母

var Ahtml = {A:[],B:[],C:[],D:[],E:[],F:[],G:[],H:[],I:[],J:[],K:[],L:[],M:[],N:[],O:[],P:[],Q:[],R:[],S:[],T:[],U:[],V:[],W:[],X:[],Y:[],Z:[],其他:[]}; //新建数组,防止出现undefind

var Yselect_box = document.createElement("div"); //新建选择框父元素

Yselect_box.id = ida+"_Yselect_box";

var Yselect_div = document.createElement("div"); //字母返回值的容器

var Yselect_letter = document.createElement("p"); //26字母容器

Yselect_letter.id = ida+'_Yselect_letter'

var stylelink = document.createElement("style") //创建皮肤,有两套皮肤可供选择

//stylelink.innerHTML = '#'+id+'_Yselect_box{width: 100%;position:absolute;top:30px;left:0;z-index:9999;background:#fff}#'+id+'_Yselect_box p{background: #469bde;padding:0 10px;}#'+id+'_Yselect_box p span.close{font: 16px/20px 微软雅黑;cursor:pointer;position:absolute;top:0;right:0;color:#f00}#'+id+'_Yselect_box .hide_tag{border: 1px solid #469bde;padding:5px;display: none;min-height:100px;max-height:300px;min-width:300px;max-width:800px;overflow:auto}#'+id+'_Yselect_box p a{padding:5px;line-height: 28px;color:#fff}#'+id+'_Yselect_box .hide_tag a{width:80px;display:block;text-decoration:none;padding:5px;line-height: 12px;font-size:12px;float:left;color:#444;overflow: hidden; text-overflow:ellipsis;white-space:nowrap;}#'+id+'_Yselect_box .hide_tag a:hover{background:#469bde;color:#fff;}#'+id+'_Yselect_box .cur{border-bottom: 2px solid #fac51f}';

stylelink.innerHTML = '#'+ida+'_Yselect_box{width: 100%;min-width:500px;max-width:800px;position:absolute;top:30px;left:0;z-index:9999;background:#fff;border:1px solid #ddd;}#'+ida+'_Yselect_box p{padding:0 10px;}#'+ida+'_Yselect_box p span.close{font: 16px/20px 微软雅黑;cursor:pointer;position:absolute;top:0;right:0;color:#666}#'+ida+'_Yselect_box .hide_tag{padding:5px 10px;display: none;min-height:50px;max-height:200px;overflow:auto}#'+ida+'_Yselect_box p a{padding:5px;line-height: 28px;color:#333;border-bottom:2px solid #bbb;font-weight:bold}#'+ida+'_Yselect_box .hide_tag a{width:80px;display:block;text-decoration:none;padding:5px;line-height: 12px;font-size:12px;float:left;color:#444;overflow: hidden; text-overflow:ellipsis;white-space:nowrap;}#'+ida+'_Yselect_box .hide_tag a:hover{background:#469bde;color:#fff;}#'+ida+'_Yselect_box a.cur{border-bottom: 2px solid #469bde;color:#469bde}';

for (var i = 0 ; i < data_name.length ; i++) {

var str = data_name[i].split(';')

tit.push(str[2].charAt(0).toLocaleUpperCase()) //判断首字母,赋值给tit

};

for(var j in tit){

if(name_list[tit[j]])

name_list[tit[j]].push(data_name[j]);

else name_list.其他.push(data_name[j])

} //将数据插入name_list里

for (var k in name_list){ //处理数据,以字母分离,为空就隐藏

if (name_list[k].length != 0) {

for (var i = 0 ; i < name_list[k].length ; i++) {

var allhtml = '' + name_list[k][i].split(';')[1] + '';

Ahtml[k] += allhtml ;

};

Yselect_letter.innerHTML += ''+k+'';

Yselect_div.innerHTML += '

'+Ahtml[k]+'

';

};

}

var bool = true

Yselect_box.innerHTML = '

'+Yselect_letter.innerHTML+'x

'+ Yselect_div.innerHTML;

YDropdowns.appendChild(Yselect_box);

YDropdowns.appendChild(stylelink); //将select插入页面

Yselect_box.getElementsByTagName('p')[0].getElementsByTagName('span')[0].onclick = function Yselect_close(){

YDropdowns.removeChild(Yselect_box)

YDropdowns.removeChild(stylelink);

bool = false

} //点击销毁select

Yselect_close.close = function Yselect_close(obool){

if(obool){

YDropdowns.removeChild(Yselect_box)

YDropdowns.removeChild(stylelink);

bool = false

return

};

if (bool) {

YDropdowns.removeChild(Yselect_box)

YDropdowns.removeChild(stylelink);

}

} //销毁select函数

return Yselect_close

}

jsondata(Pretreatment(),id)

navlist(id)

function navlist(ids){ //tab选项卡处理函数

var a = document.getElementById(ids+'_Yselect_letter').getElementsByTagName('a');

var div = document.getElementById(ids+'_Yselect_box').getElementsByTagName('div');

div[0].style.display = "block" ; a[0].className = "cur";

for (var i = 0 ; i < a.length ; i++) {

a[i].index = i;

a[i].onclick = function(){

for (var j = 0 ; j < a.length ; j++){

div[j].style.display = "none";

a[j].className = "";

};

div[this.index].style.display = "block";

this.className = "cur"

};

};

};

};

本文来源:https://www.jb51.net/article/54561.htm

仿携程oracle课程设计,一个不错的仿携程自定义数据下拉选择select相关推荐

  1. oracle课程设计的总结,谈Oracle课程设计基本框架

    1.Oracle数据库的备份策略 Datapump的逻辑备份提供了表.方案.表空间和数据库等四种备份方式,因此备份策略中也是包括这个四种. 1.1备份表 为避免数据库运行时数据的丢失而对某些重要级别的 ...

  2. oracle课程设计代码,Oracle 课程设计源码

    创建主表空间: create tablespace test datafile 'D:\OracleSpace\test' size 20m extent management local; 创建用户 ...

  3. java简单计算器课程设计_java仿windows简易计算器课程设计 源码+报告

    [实例简介] java仿windows简易计算器课程设计 源码+报告 课直接运行. [实例截图] [核心代码] Java课设-简易计算器 └── Java课设-简易计算器 ├── Java课程设计.d ...

  4. oracle课程设计图书销售系统,oracle课程设计图书管理系统

    oracle课程设计图书管理系统 数据库课程设计 设计名称:图书管理系统 组员:尚靖伟(122068) 张红凯(122072) 班级:计 G121 班信息工程学院计算机系 2013 年 6 月 27 ...

  5. c语言课程设计报告-计算器的实现,C语言课程设计--一个简易计算器的设计与实现.doc...

    C语言课程设计--一个简易计算器的设计与实现 扬 州 大 学 ------------------1 程序设计内容:------------------1 课程设计所补充的内容:补充的函数或算法--- ...

  6. 开发一个出生年份的下拉选择框供用户选择_你的下拉式菜单设计对了吗?

    追波范儿(dribbbledesign)------------------------------------------- 下拉菜单主要有两种类型:1. 用于导航的下拉菜单:2. 用于表单的下拉菜 ...

  7. 设计一个学校在册人员类(Person)。数据成员包括身份证号(IdPerson)、姓名(Name)、性别(Sex)、生日(Birth-day)和家庭住址(HomeAddress)。成员函数包括人员信息

    在1设计一个学校在册人员类(Person).数据成员包括身份证号(IdPerson).姓名(Name).性别(Sex).生日(Birth-day)和家庭住址(HomeAddress).成员函数包括人员 ...

  8. 开发一个出生年份的下拉选择框供用户选择_关于下拉式菜单,这一篇足够了

    下拉菜单主要有两种类型: 1.用于导航的下拉菜单: 2.用于表单的下拉菜单. 在本文中,我们将对以下内容进行介绍: 01 结构剖析 下拉菜单的解剖结构与文本输入字段的解剖结构非常相似. 02 下拉菜单 ...

  9. 创建一个JFrame,可下拉选择显示字符串和图片

    创建一个JFrame,可下拉选择显示字符串和图片 import java.awt.*; import java.awt.event.*; import java.io.*; import javax. ...

最新文章

  1. 叮!你有一份2018英特尔人工智能大会的邀请函,请查收!
  2. html中表格自动换行
  3. 30天敏捷生活(8): 生成你的20/80待做事项列表
  4. 设计模式18---设计模式之策略模式(Strategy)(行为型)
  5. mysql修改存储位置及开启远程
  6. python特性、属性以及私有化
  7. Fastest way to duplicate mongodb collection
  8. 每个程序员都必须知道的8种通用数据结构
  9. linux 权限管理 lvm,Linux LVM 设置和管理
  10. Java比较两个实体属性值是否相同,将不同的属性输出
  11. MySql 1067错误
  12. 深度学习简单线性训练
  13. 【Oracle】开、关、删归档日志(archivelog)
  14. Error:java: Compilation failed: internal java compiler error 解决办法
  15. 单片机支持EM4100和T5577两种ID门禁卡
  16. Day02 郝斌C语言自学视频之C语言编程预备知识
  17. TeeChart曲线平滑 Line.Smoothed
  18. 酒精测试仪方案开发PCBA
  19. 任务调度 cron使用
  20. The Pursuit of Happyness 当幸福来敲门(励志电影推荐)

热门文章

  1. AGV导航中的最短路径算法比较
  2. 拓嘉辰丰:把握拼多多改价技巧,降低降权风险
  3. 世界上第一台电子计算机adc,2004山东公务员考试计算机专业理论题
  4. 行程卡是怎么记录行程的?
  5. 跨境电商难做?你需要知道这5个“低成本低风险”跨境电商项目
  6. java outer什么意思_java里面outer、 inner是什么意思
  7. 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍
  8. 如何培养自己的赚钱能力
  9. DMM6500+Keithley6517B/6514纳米发电机测试软件
  10. 批量提取Word中的图片