ie6 option innerHTML 关于select 的添加 option 应该注意的问题

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>


<!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>Untitled Page</title>

</head>

<body οnlοad="f()">

<select id="s">

    <option value="55">就是这样的。</option>

</select>

</body>


<script>

function f(){

    var s = document.getElementById('s');

    for(var i=0; i<10; i++){

        var option = document.createElement('option');

        //s.insertBefore(option,s.options[0]);

        /* 标准做法使用 s.options.add() */

        s.options.add(option)

      /* 非标准做法就是用 insertBefore 或者 appendChild */

      //s.appendChild(option);

       option.text = 'hello' + i;

      //option.innerHTML = 'Hello' + i;

       option.value = i;

  //  s.appendChild(option);

    }

    /* 当且仅当用 s.options.add() 添加项时才有效 */

    s.selectedIndex = 4 ;

}

</script>

</html>



 

 

 

 

 关于 select 的添加 option 应该注意的问题。

标准的做法如上
 
 
也就是说,标准的做法是 s.options.add();
但是如果你一定要用 s.appendChild(option);
注意了,你只能用如下两种方式之一:
1.  
     s.appendChild(option);
     option.text = 'hello world';
     option.value =3;
   也就是,一定要先添加到 select 中,然后再为 option 赋值。否则在 FF 下是显示正常的,但是在 IE6 中显示的是空白
 
2. 如果你要讲 option.text 和 option.value 的赋值放在前面,那么请用 option.innerHTML 而不是 option.text
  如下: 
    option.innerHTML = 'hello world';
    opion.value = 3;
    option.appendChild(option);
 
 
又看了一个牛人的博客,得到了第三种解决方式。
 
var op=document.createElement("option");      // 新建OPTION (op) 
op.setAttribute("value",0);          // 设置OPTION的 VALUE 
op.appendChild(document.createTextNode("请选择---")); // 设置OPTION的 TEXT
 
select.appendChild(op);           // 为SELECT 新建一 OPTION(op)
 
 
也就是所,你的 op 的text 是通过 appendChild(.... createTextNode ) 来进行的。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值