这样写的代码:document.getElementById('data_list').innerHTML = data;//data是ajax返回的数据

结果发现在ie10的兼容模式下面下拉框没有内容,

之后alert调试了一下 发现alert(data)时所有的下拉框的数据都能出来

然后alert调试了alert(document.getElementById('data_list').innerHTML),发现第一个下拉框的数据前面少了一个<option>标签

解决的时候有两种方案:

1. 如果您必须使用 innerHTML ,一种替代方法是使用一个 div 对象封装 SELECT 元素和然后设置 div 对象的 innerHTML 属性。

例如:

<html>
              <head>
                <title>My Example</title>
                  <script language="Javascript">
                        var origDivHTML;

                    function init() {
                            origDivHTML = myDiv.innerHTML;
                        }

                    function setValues() {
                            var oldinnerHTML = "your original innerHTML: " + yourDiv.innerHTML;  
                              alert(oldinnerHTML);
                              yourDiv.innerHTML = origDivHTML;
     
                            var curinnerHTML = "your current innerHTML: " + yourDiv.innerHTML;
                                alert(curinnerHTML);
                        }
                  </script>
             </head>

<body onload="init()">
              <div id="myDiv">
                 <select name="firstSelect" size="1">
                    <option>11111</option>
                    <option>22222</option>
                    <option>33333</option>
                 </select>
             </div>

<div id="yourDiv">
                <select name="secondSelect" size="1">
                     <option>aaaa</option>
                     <option>bbbb</option>
                     <option>cccc</option>
                </select>
           </div>
           <button onclick="setValues();">click me to set the values</button>
        </body>
       </html>

2. 理想情况下,应使用 选项(Option) 集合添加为 SELECT 元素的选项。 下面的代码显示用编程方式将选项添加到 SELECT 元素的三种方法。例如:

<html>
<head>
<title></title>
</head>
<body>

<script>

function fill_select1() {

for(var i=0; i < 100; i++) {
        select1.options[i] = new Option(i,i);
    }
}

function fill_select2() {

var sOpts = "<select>";
    for (var i = 0; i < 100; i++) {
        sOpts += '<option value="' + i + '">' + i + '</option>';
    }
    
    select2.outerHTML = sOpts  + "</option>";
}

function fill_select3() {

for(var i=0; i < 100; i++) {
       var oOption = document.createElement("OPTION");
       oOption.text="Option:  " + i;
       oOption.value=i;
       document.all.select3.add(oOption)
    }
}

</script>

<h2>SELECT Box Population</h2>

<select id=select1 name=select1></select>
<input type="button" value="Populate with options list" id="button1" name="button1" onclick="fill_select1();"><br/><br/>

<select id="select2" name="select2"></select>
<INPUT type="button" value="Populate with outerHTML" id="button2" name="button2" onclick="fill_select2();"><br/><br/>

<select id="select3" name="select3"></select>
<input type="button" value="Populate with using createElement" id="button3" name="button3" onclick="fill_select3();">

</body>
</html>

IE中部分版本的浏览器对Select标签设置innerHTML无效的问题的更多相关文章

  1. Android中Listview点击item不变颜色以及设置listselector 无效

    Android中Listview点击item不变颜色以及设置listselector 无效 这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listsele ...

  2. 第一篇-Html标签中head标签,body标签中input系列,textarea和select标签

    第十四周课程(1-12章节) HTML 裸体 CSS   穿华丽衣服 Javascript 动起来 一 HTML (20个标签) 1.我们的浏览器是socket客户端 2.一套规则,浏览器认识的规则 ...

  3. 如何让低版本IE浏览器支持HTML5标签并为其设置样式

    现代的浏览器都支持HTML5,HTML5定义了 8 个新的 HTML 语义元素.所有这些元素都是 块级 元素. 为了能让旧版本的浏览器正确显示这些元素,你可以设置 CSS 的 display 属性值为 ...

  4. html select 标签设置默认选中

    方法有两种. 第一种通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果. 1 2 3 4 5 < select  id =  " ...

  5. select标签设置只读的方法(下拉框不可选但可传值)

    1. <select id="s1" name="s1" onfocus="this.defaultIndex=this.selectedInd ...

  6. 解决在IE6、7中用height来设定SELECT标签高度无效的兼容性问题

    在IE6.7中用height来设定SELECT标签高度是无效的,宽度的话各浏览器设置都是一致的,解决方法就是在select外嵌套两层标签,一层用来遮挡select的默认边框(在IE6.7中设置bord ...

  7. 设置select标签的高度

    当无法给select标签设置高度的时候,给他加一个背景色,就可以设置了.

  8. CSS - Select 标签在不同浏览器中的高度设置

    当使用Select标签时,在不同浏览器中显示的高度不同,如何解决此问题: 解决方法链接:http://stackoverflow.com/questions/20477823/select-html- ...

  9. HTML5中的语义标签兼容IE8以及更低版本的浏览器

    看某教程,说让HTML5的这些语义标签能够兼容低版本的浏览器,原文是“你可以设置css的display属性为block”.很好理解,就设置css样式为block嘛,那就直接设置咯: header, s ...

随机推荐

  1. BZOJ3123:[SDOI2013]森林——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3123 https://www.luogu.org/problemnew/show/P3302 树上主 ...

  2. BZOJ3675 [Apio2014]序列分割 【斜率优化dp】

    3675: [Apio2014]序列分割 Time Limit: 40 Sec  Memory Limit: 128 MB Submit: 3366  Solved: 1355 [Submit][St ...

  3. UVA.679 Dropping Balls (二叉树 思维题)

    UVA.679 Dropping Balls (二叉树 思维题) 题意分析 给出深度为D的完全二叉树,按照以下规则,求第I个小球下落在那个叶子节点. 1. 默认所有节点的开关均处于关闭状态. 2. 若 ...

  4. HDOJ.2955 Robberies (01背包+概率问题)

    Robberies 算法学习-–动态规划初探 题意分析 有一个小偷去抢劫银行,给出来银行的个数n,和一个概率p为能够逃跑的临界概率,接下来有n行分别是这个银行所有拥有的钱数mi和抢劫后被抓的概率pi, ...

  5. 一个简单的适用于Vue的下拉刷新,触底加载组件

    一个简单的适用于Vue的上拉刷新,触底加载组件,没有发布npm需要时直接粘贴定制修改即可 <template> <div class="list-warp-template ...

  6. JQuery仿淘宝滚动加载图片

    用 JQuery 制作随着显示页面的滚动条的滚动动态加载图片,适用于图片太多的页面,在访问网页时,可以先只加载第一屏要显示的图片,当用户进行向下滚动查看页面的时候,动态去加载这些图片,好处是减少页面第 ...

  7. FreeRTOS - 任务使用注意

    如果使用xTaskCreate() 创建任务,任务栈使用的是FreeRTOS heap

  8. jquery禁用按钮

    $('#sub').click(function () { var self = $(this); ,'#01b637') ){ return false; } }); function onesho ...

  9. EL表达式获取对象属性的原理

    EL表达式获取对象属性的原理是这样的: 以表达式${user.name}为例 EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找 ...

  10. 2015/9/2 Python基础(7):元组

    为什么要创造一个和列表差别不大的容器类型?元组和列表看起来不同的一点是元组用圆括号而列表用方括号.而最重要的是,元组是不可变类型.这就保证了元组的安全性.创造元组给它赋值和列表完全一样.除了一个元素的 ...