动态给select标签添加option,结合前人经验以及自己经验,现在总结三种方法供大家参考,一起交流学习!
首先是定义的select元素:
//根据ID获得select元素 var mySelect =
document.getElementByIdx_x("mySelect"); 方法一: 通过new Option(value,text)函数,第一个参数是显示的文字,第二个参数是value值,如果需要添加其他属性,可以这样: var opp = new Option("aaa","001"); opp.name = "option1"; //将option添加到select标签里面 mySelect.add(opp); //添加完成
方法二: 通过document.createElement_x()来创建选项,然后再设置选项的属性。在这里w3c标准是可以设置option的label属性即为显示文本,但事实证明FF并不支持,只是给option增加了一个label属性。而w3c中定义的readonly的属性text,在FF中却可以设置。那么是否需要判断浏览器类型呢?当然不用,该方案代码如下 var option = document.createElement_x('option'); try{ // 二级DOM中该属性为readonly,但FF确可写,且可显示为选项内容 option.text = “aaa”; }catch(e){ // IE支持label,可以直接显示为选项的文字 option.label = "aaa"; } option.value = "001"; // 如果不传第二个参数,FF下会报错 mySelect.add(option, null);
这里要注意的add()函数的第二个参数,该参数为before,可以指定选项插到哪个选项之前,如果为null则插到最后。如果不指定这个参数在IE系不会有问题,FF下会报错,提示Not enough arguments,参数不足,所以最好传个null先。
方法三: 比较少用于select元素上,IE下是无效的,但是动态添加其他元素的孩子时经常用到。当然也可以设置元素属性后appendChild(),同方案二。这里要先把select隐藏掉,这样可以减少浏览器重绘次数,对于display='none'的元素的操作不会引起重绘或回流。再改变完之后再显示出来:
//首先设置select元素不可见 mySelect.style.display = 'none'; //给select元素添加option选项 mySelect.innerHTML += '

'; //最后将select元素设置可见 mySelect.style.display = 'block';
OK!!! 这三种方式最常用的就是第一种了,没有兼容性问题,其他两种只是在此作为例子,展示创建option的方法。

动态删除select中的所有options: document.getElementByIdx_x("ddlResourceType").options.length=0;
动态删除select中的某一项option: document.getElementByIdx_x("ddlResourceType").options.remove(indx);
动态添加select中的项option: document.getElementByIdx_x("ddlResourceType").options.add(new Option(text,value));
兼容IE和FF的Javascript动态添加Select控件的Option选项

看了很多Javascript的书籍,发现对Select可以使用add方法添加Option选项。 selectObj.add(new Option("Label", "Value")); 但是add方法好像只在IE下好用。现在提供一个通用的方法: selectObj.options[selectObj.length] = new Option("Label", "Value"); 另外如果想还想使用add方法,可以写成如下格式: selectObj.add(new Option("Label", "Value"), null); 请注意,在IE6及IE7下请使用不带null参数的add方法,在FF下请使用带null参数的方法,IE8下带不带都可以。 很奇怪为什么一定要加null,我猜测add方法里一定使用了'=== null'来判断第二的参数或者没有对参数数组的长度做验证

动态添加select的option [转载]的更多相关文章

  1. 动态添加select的option

    动态给select标签添加option,结合前人经验以及自己经验,现在总结三种方法供大家参考,一起交流学习! 首先是定义的select元素: //根据ID获得select元素var mySelect ...

  2. js对select动态添加和删除OPTION

    <select id="ddlResourceType" onchange="getvalue(this)"> </select> 动态 ...

  3. 使用js对select动态添加和删除OPTION示例代码

    动态删除select中的所有options.某一项option以及动态添加select中的项option,在IE和FireFox都能测试成功,感兴趣的朋友可以参考下,希望对大家有所帮助   <s ...

  4. 使用js对select动态添加和删除OPTION

    <select id="ddlResourceType" onchange="getvalue(this)"> </select> 动态 ...

  5. 使用js 在IE和火狐firfox 里动态增加select 的option

    使用js 在IE和火狐firfox 里动态增加select 的option <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transition ...

  6. JS & JQuery 动态添加 select option

    因为是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因. 如有冒犯请联系本人,或删除,或标明出处. 因为好的文章,以前只想收藏,但连接有时候会失效,所以 ...

  7. javascript;select动态添加和删除option

    <select id="sltCity"></select> //添加Option. var optionObj = new Option(text, va ...

  8. 动态添加select选项空选项问题

    问题:动态添加校区选项的数据的时候,总是多添加一项空白的数据. 动态添加代码如下: 网上找到的原因:因为在option中有标签没有闭合,所以导致浏览器认为是两个option, 所以只需要给这个标签添加 ...

  9. jQuery为div添加select和option

    简单描述:用jQuery给页面添加select下拉框,直接上图 总结:清楚明了^_^

随机推荐

  1. SYN Flood 防范

    简介: SYN Flood 是 DoS( 拒绝服务攻击 )与 DDoS( 分布式拒绝服务攻击 )的方式之一,这是一种利用 TCP 协议缺陷,发送大量伪造 TCP 连接请求,从而使得服务器资源耗尽( C ...

  2. jquery排序与动态添加option以及属性

    function getOrgansid() { url="<%=basePath%>/rest/bsc/organ/selectOrganSidAllList"; $ ...

  3. 编码总结,以及对BOM的理解

    一.前言 在跨平台.跨操作系统或者跨区域之间,经常会涉及到编码的问题,因为前段时间在项目中,遇到了因为编码而产生乱码的问题,以前对编码也是一知半解,所以决定对编码有一个更为深入的了解,因此才有了这篇自 ...

  4. kali linux:wireshark不能被root用户启用的解决方案

    启动wireshark后,报错: 该界面提示在init.lua文件中使用dofile函数禁用了使用超级用户运行wireshark.这是因为wireshark工具是使用Lua语言编写的,并且在kali ...

  5. App审核被拒(后台定位被拒,ipv6被拒,广告标示被拒的解决方案)

    ipv6被拒问题描述: 解决方案支持ipv6 1)搭建ipv6 环境,搭建好的ipv6 ,环境会有一个共享wifi, 具体如何搭建ipv6测试环境参考本地如何搭建IPv6环境测试你的APP2)app连 ...

  6. 746. Min Cost Climbing Stairs 最不费力的加权爬楼梯

    [抄题]: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once yo ...

  7. ECS 游戏架构 应用

    转载自:http://blog.csdn.net/i_dovelemon/article/details/30250049 如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏 ...

  8. xml与java代码相互装换的工具类

    这是一个java操作xml文件的工具类,最大的亮点在于能够通过工具类直接生成xml同样层次结构的java代码,也就是说,只要你定义好了xml的模板,就能一键生成java代码.省下了自己再使用工具类写代 ...

  9. TF Boys (TensorFlow Boys ) 养成记(一):TensorFlow 基本操作

    本资料是在Ubuntu14.0.4版本下进行,用来进行图像处理,所以只介绍关于图像处理部分的内容,并且默认TensorFlow已经配置好,如果没有配置好,请参考官方文档配置安装,推荐用pip安装.关于 ...

  10. servlet中如何发送ajax请求并动态拼接数据到html中

    废话不多说,直接上代码 1.servlet 2.js 3.jsp 有不懂得欢迎来扣我哦^_^ 详细介绍请查看全文:https://cnblogs.com/qianzf/ 原文博客的链接地址:https ...