<html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>HTML标签</title> <script src="http://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script> </head> <body> <!-- 下拉框 --> <select id="myselect"> <option value="1" >A</option> <option value="2" >B</option> <option value="3" selected >C</option> </select> <br /> <input id="mybtn" type="button" value="add" /><br /> <input id="mybtn2" type="button" value="change" /><br /> </body> </html> <script type="text/javascript"> //兼容ie浏览器测试 var console = console || {}; console.log = console.log || function(a){ alert(a); } /* 下拉框是一个用处广泛和经常需要扩展的控件. 经常用来实现下拉选择,联动选择,下拉树等. */ /* 最简单的使用方法,如何获取下拉框的值 */ var select = document.getElementById("myselect"); //select改变value事件 select.onchange = function(){ //选中的value var val = this.value; console.log(val); //选中项的下标,注意是从0开始 var index = this.selectedIndex; console.log(index); //选中项的文本,这个获取的方法有点特别需要记住一下 var txt = this.options[index].text; console.log(txt); } /* 这是最简单的使用方法,常常我们碰到的可能是需要动态是加载select的数据. 那怎么做呢,方法是有很多种的. */ //动态添加一项 var btn = document.getElementById("mybtn"); btn.onclick = function(){ //通过option对象动态添加,注意第一个参数是用来显示的文本,第二个参数是value var item = new Option("D","4"); var select = document.getElementById("myselect"); //添加一项 select.options.add(item); } /* 点击按钮可以动态添加一项,但是貌似有点傻傻的. 如果我们有很多地方需要动态添加就比较累了,所以我们尝试简单封装一下. */ /* 分析一下: 1.它应该接收三个参数对吧,select对象,option的txt和value. 但是txt和value是可以相同的,那么至少两个. 2.动态添加是否应该验证一下,要添加的值是否已存在. */ var option = function(){ /* 验证要添加的选项value是否已存在 val:选项value */ function isExist(select,val){ var b = false; for (var i = 0,len = select.options.length; i < len; i++){ var ov = select.options[i].value; if (ov == val) { b = true; break; } } return b; } /* 动态添加option select:下拉框ele val:选项value txt:选项text */ function addItem(select,val,txt){ if(typeof select == "object" && val != null){ //验证是否已添加 var b = isExist(select,val); if(!b){ //因为参数是动态的,还记得arguments吗? //如果没有txt参数,那么txt = val txt = arguments[2] || val; //通过option对象动态添加,注意第一个参数是用来显示的文本,第二个参数是value var item = new Option(txt,val); if(select.options != null){ //添加一项 select.options.add(item); return false; } else{ console.log("select参数不合法"); return false; } } else{ console.log("选项已添加"); return false; } } else{ console.log("参数不合法"); return false; } } //公开方法 return { isExist:isExist, addItem:addItem } }();//注意这个括号,是指执行这个匿名函数. var btn = document.getElementById("mybtn"); btn.onclick = function(){ var select = document.getElementById("myselect"); option.addItem(select,"4","D");//成功 option.addItem(select,"4","D");//已添加 option.addItem(select,"5");//成功 } /* 封装好的option类,是全局的一个实例,随时都可以调用公开的两个方法. 这就是js单例模式的封装方法.一般用来封装一些工具类. */ /* 下拉框还能采用动态更新html的方法添加选项. 这里我们简单提一下. */ var btn2 = document.getElementById("mybtn2"); btn2.onclick = function(){ var html = []; html.push('<option value="1" >足球</option>'); html.push('<option value="2" >篮球</option>'); html.push('<option value="2" >羽毛球</option>'); var select = document.getElementById("myselect"); //这样我们就可以更新select下面的全部option了. select.innerHTML = html.join(''); } /* 关于select还有其它一些常用的操作,简单介绍一下. */ var select = document.getElementById("myselect"); //设置默认选择项,设置selected=true,或者再html标签直接加上属性selected select.options[1].selected = true; //删除某一个选项,将某项的options设置为null. //select.options[2] = null; //清空全部选项 //select.options.length = 0; /* jquery时间. */ //获取选中项的值 var val = $("#myselect").val(); console.log(val);//2 //获取选中项的文本,这个跟想的不一样哦,不是直接$("#myselect").text(); var txt = $("#myselect option:selected").text(); console.log(txt);//B //删除某一个选项 $("#myselect option").get(2).remove(); //清空全部选项 $("#myselect").empty(); /* 知识点: 1.获取select的显示文本,需要通过selectedIndex从options对象获取. 2.动态给select添加选项的两种方式. 3.js模仿单例模式封装方法. 4.select的其它常用操作. 5.介绍了使用jquery简单操作select. */ </script>
相关推荐
团队介绍模板,CSS,适合多人团队项目个人介绍及项目介绍
ppt格式的html5 介绍,非常形象、生动的资料
旅游景区介绍html5模板是一款旅行社旅游景点介绍旅游线路规划网站模板下载。
程序猿炫酷个人介绍HTML源码
html-css-网页模板-团队介绍
本文件详细介绍了html的简介、基本结构、标记、使用....
企业介绍单页html模板是一款简单实用的bootstrap模板下载。
目录 1、HTML5概述 2、HTML5支持情况 3、HTML5开发工具 4、HTML5特性介绍 5、WEB GL 6、HTML5与Silverlight4.0、Flash 7、HTML5未来发展趋势 8、八大浏览器Html5支持细节列表 9、参考书籍
漂亮大气VIP会员介绍页面 html单页源码无需数据库 扒的某站漂亮大气VIP会员介绍页面 html单页源码无需数据库 刚流出的众人帮任务悬赏平台新UI版本,去除了短信注册接收验证码(当然也可以加),充值对接了Z支付个人...
html+js+css自我介绍,滑动滚轮进行界面的更换
HTML5期末考核大作业源码 包含 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞 蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、游戏、 节日、 戒烟、 电影、 ...
2)自我介绍 注:运用表格布局 3)我的家乡 家乡概况、家乡地标、家乡美食、家乡名胜 等 注:综合运用框架、DIV+CSS布局 4)我的相册 快乐的童年、校园生活 等 5)雁过留声(表单) 用表单制作一个留言...
3D 足球队队员介绍,这个是采用CSS3技术实现的效果,HTML5 CSS3三维效果,使用本实例中的效果,使用了googleapis,还自定义了超多的JS类库,以足球场为核心,显示各队员头像,单击头像可显示该运动员信息,并以前峰...
纯 Html 开发的游戏介绍网站,可以介绍多种游戏的内容,解压压缩包后点击启动.bat文件即可快捷启动,源代码在 html 文件夹下,可用于网页设计类型的课程设计。
大学生静态网页设计期末作业川剧介绍的静态网页HTML源码带简单交互效果(必过) 一个关于川剧介绍的静态HTML网页,有着一些简单的交互效果,95分以上没问题啊,大作业必过,课程设计必过! 大学生静态网页设计期末...
HTML语言介绍 PPT 88页
HTML5期末考核大作业源码 包含 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞 蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、游戏、 节日、 戒烟、 电影、 ...
个人主页介绍html-适配pc端、phone端 适配性较强 修改html文件的文字即可使用 图片可替换
HTML5应用介绍HTML5应用介绍HTML5应用介绍HTML5应用介绍HTML5应用介绍HTML5应用介绍