首页 > 代码库 > JS动态添加option和删除option

JS动态添加option和删除option

1.动态创建select

      function createSelect(){

var mySelect = document.createElement("select");
          mySelect.id = "mySelect";
          document.body.appendChild(mySelect);
      }

2.添加选项option

     function addOption(){

          //根据id查找对象,
           var obj=document.getElementById(‘mySelect‘);

           //添加一个选项
obj.add(new Option("文本","值"));    //这个只能在IE中有效
         obj.options.add(new Option("text","value")); //这个兼容IE与firefox
     }

3.删除所有选项option

     function removeAll(){
           var obj=document.getElementById(‘mySelect‘);
obj.options.length=0;

     }

4.删除一个选项option

function removeOne(){
           var obj=document.getElementById(‘mySelect‘);

           //index,要删除选项的序号,这里取当前选中选项的序号

var index=obj.selectedIndex;
obj.options.remove(index);

     }

5.获得选项option的值

var obj=document.getElementById(‘mySelect‘);

var index=obj.selectedIndex; //序号,取当前选中选项的序号

var val = obj.options[index].value;

6.获得选项option的文本

var obj=document.getElementById(‘mySelect‘);

var index=obj.selectedIndex; //序号,取当前选中选项的序号

var val = obj.options[index].text;

7.修改选项option

var obj=document.getElementById(‘mySelect‘);

var index=obj.selectedIndex; //序号,取当前选中选项的序号

var val = obj.options[index]=new Option("新文本","新值");

8.删除select

      function removeSelect(){
            var mySelect = document.getElementById("mySelect");
mySelect.parentNode.removeChild(mySelect);
     }

整个实例的完整代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//ZH-CN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html">
<head>
   <script language=JavaScript>
    function $(id)
    {
     return document.getElementById(id)
    }
    function show()
    {
     var selectObj=$("area")
     var myOption=document.createElement("option")
     myOption.setAttribute("value","10")
     myOption.appendChild(document.createTextNode("上海"))
     var myOption1=document.createElement("option")
     myOption1.setAttribute("value","100")
     myOption1.appendChild(document.createTextNode("南京"))
     selectObj.appendChild(myOption)
     selectObj.appendChild(myOption1)
    }
    function choice()
    {
     var index=$("area").selectedIndex;
     var val=$("area").options[index].getAttribute("value")
     if(val==10)
     {
      var i=$("context").childNodes.length-1;
     var remobj=$("context").childNodes[i];
     remobj.removeNode(true)
      var sh=document.createElement("select")
      sh.add(new Option("浦东新区","101"))
      sh.add(new Option("黄浦区","102"))
      sh.add(new Option("徐汇区","103"))
      sh.add(new Option("普陀区","104"))
      $("context").appendChild(sh)
     }
     if(val==100)
     {
      var i=$("context").childNodes.length-1;
     var remobj=$("context").childNodes[i];
     remobj.removeNode(true)
      var nj=document.createElement("select")
      nj.add(new Option("玄武区","201"))
      nj.add(new Option("白下区","202"))
      nj.add(new Option("下关区","203"))
      nj.add(new Option("栖霞区","204"))
      $("context").appendChild(nj)
     }
    }
    function calc()
    {
     var x=$("context").childNodes.length-1;
     alert(x)
    }
    function remove()
    {
     var i=$("context").childNodes.length-1;
     var remobj=$("context").childNodes[i];
     remobj.removeNode(true)
    }
   </script>
<body>
<div id="context">
   <select id="area" onchange="choice()">
   </select>
</div>
<input type=button value="http://www.mamicode.com/显示" onclick="show()">
<input type=button value="http://www.mamicode.com/计算结点" onclick="calc()">
<input type=button value="http://www.mamicode.com/删除" onclick="remove()">
</body>
</html>

改进版:在select中添加、修改、删除option元素

function watch_ini(){ // 初始
for(var i=0; i<arguments.length; i++){
var word = document.createElement("OPTION");
word.text = arguments[i];
watch.keywords.add(word); // watch. is form name
}
}
function watch_add(f){ // 增加
var word = document.createElement("OPTION");
word.text = f.word.value;
f.keywords.add(word);
}
但上述 add() 方法只在IE下有效,为兼容FF和Opera,对上述代码进行了一下改进,改动后代码如下: function watch_ini(){ // 初始
for(var i=0; i<arguments.length; i++){
   var oOption=new Option(arguments[i],arguments[i]);
   document.getElementById("MySelect")[i]=oOption;
}
}
function watch_add(f){ // 增加
   var oOption=new Option(f.word.value,f.word.value);
   f.keywords[f.keywords.length]=oOption;
}


整个实例的完整代码如下:

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>javascript select options text value</title>
<meta name="keywords" content="javascript select options text value add modify delete set">
<meta name="description" content="javascript select options text value add modify delete set">
<script language="javascript">
<!--
function watch_ini(){ // 初始
for(var i=0; i<arguments.length; i++){
   var oOption=new Option(arguments[i],arguments[i]);
   document.getElementById("MySelect")[i]=oOption;
}
}
function watch_add(f){ // 增加
   var oOption=new Option(f.word.value,f.word.value);
   f.keywords[f.keywords.length]=oOption;
}
function watch_sel(f){ // 编辑
f.word.value = http://www.mamicode.com/f.keywords[f.keywords.selectedIndex].text;
}
function watch_mod(f){ // 修改
f.keywords[f.keywords.selectedIndex].text = f.word.value;
}
function watch_del(f){ // 删除
f.keywords.remove(f.keywords.selectedIndex);
}
function watch_set(f){ // 保存
var set = "";
for(var i=0; i<f.keywords.length; i++){
set += f.keywords[i].text + ";";
}
confirm(set);
}
//-->
</script>
</head>
<body>
<form name="watch" method="post" action="">
<select id="MySelect" name="keywords" size="10" onchange="watch_sel(this.form)"></select><br>
<script language="javascript">
<!--
watch_ini("我","你","妳","他","她","它","尔"); // 初始关键词
//-->
</script>
<input type="text" name="word" /><br />
<input type="button" value="http://www.mamicode.com/增加" onclick="watch_add(this.form);" />
<input type="button" value="http://www.mamicode.com/修改" onclick="watch_mod(this.form);" />
<input type="button" value="http://www.mamicode.com/删除" onclick="watch_del(this.form);" />
<input type="button" value="http://www.mamicode.com/保存" onclick="watch_set(this.form);" />
</form>

用一个字符串创建一个数组方法:

<script language="javascript">   

</body>
</html> <script>functionspli(){datastr="2,2,3,5,6,6";      varstr=newArray();       str=datastr.split(",");          for(i=0;i<str.length ;i++ )        {document.write(str[i]+"<br/>");  }   }   spli();   </script>   -- 来源于互联网http://apps.hi.baidu.com/share/detail/31091794

 

 

<select id="ddlResourceType" onchange="getvalue(this)">

</select>

    动态删除select中的所有options:

       document.getElementById("ddlResourceType").options.length=0;

     动态删除select中的某一项option:

       document.getElementById("ddlResourceType").options.remove(indx); 

     动态添加select中的项option:

       document.getElementById("ddlResourceType").options.add(new Option(text,value));

     上面在IE和FireFox都能测试成功,希望以后你可以用上。

其实用标准的DOM操作也可以,就是document.createElement,appendChild,removeChild之类的。

取值方面

    function getvalue(obj)

    {

        var m=obj.options[obj.selectedIndex].value

        alert(m);//获取value

        var n=obj.options[obj.selectedIndex].text

        alert(n);//获取文本

    }

==============================================================================

1 检测是否有选中

if (objSelect.selectedIndex > - 1 ) {

// 说明选中

} else {

// 说明没有选中

}

2 删除被选中的项

objSelect.options[objSelect.selectedIndex] = null ;

3 增加项

objSelect.options[objSelect.length] = new Option( " 你好 " , " hello " );

4 修改所选择中的项

objSelect.options[objSelect.selectedIndex] = new Option( " 你好 " , " hello " );

5 得到所选择项的文本

objSelect.options[objSelect.selectedIndex].text;

6 得到所选择项的值

objSelect.options[objSelect.selectedIndex].value;

======================================================================

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<!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>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>JS对select动态添加options操作[IE和FireFox兼容]</title>

<script language="javascript" type="text/javascript">

function xlbchange(s){

switch (s){

   case "1" :

       document.getElementById("lb").options.length=0;

     var soojs_value=http://www.mamicode.com/[0,1,2,3];

    var soojs_text=["精神提炼","作风设计","目标设置","理念提升"];

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

     var   oOption   =   document.createElement("OPTION");  

     oOption.value=http://www.mamicode.com/soojs_value[i];

     oOption.text=soojs_text[i];  

     zpmange.lb.options.add(oOption);

     }

      break;

   case "2" :

       document.getElementById("lb").options.length=0;

     var soojs_value=http://www.mamicode.com/[0,1,2,3,4,5,6,7];

    var soojs_text=["校徽","校训","校歌","校名字体","校史展室","宣传画册","宣传光盘","办公用品纪念品"];

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

     var   oOption   =   document.createElement("OPTION");  

     oOption.value=http://www.mamicode.com/soojs_value[i];

     oOption.text=soojs_text[i];  

     zpmange.lb.options.add(oOption);

     }  

      break;

        case "3":

    document.getElementById("lb").options.length=0;

     var soojs_value=http://www.mamicode.com/[0,1,2,3];

    var soojs_text=["校园景观设计","校园雕塑设计","校园浮雕设计","走廊文化设计"];

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

     var   oOption   =   document.createElement("OPTION");  

     oOption.value=http://www.mamicode.com/soojs_value[i];

     oOption.text=soojs_text[i];  

     zpmange.lb.options.add(oOption);

     }

   break;   

        case "4":

    document.getElementById("lb").options.length=0;

     var soojs_value=http://www.mamicode.com/[0,1,2];

    var soojs_text=["学校制度","文化活动","行为规范"];

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

     var   oOption   =   document.createElement("OPTION");  

     oOption.value=http://www.mamicode.com/soojs_value[i];

     oOption.text=soojs_text[i];  

     zpmange.lb.options.add(oOption);

     }

   break;

default :

   document.getElementById("lb").options.length=0;

var   oOption   =   document.createElement("OPTION");

     oOption.value=http://www.mamicode.com/0;

     oOption.text="请选择作品类别";

zpmange.lb.options.add(oOption);

}

}

</script>

</head>

<body>

<form action="zpmange.asp" name="zpmange" method="post">

<p><select id="ddlResourceType" onchange="getvalue(this)"><br />

</select></p>

<p> 动态删除select中的所有options: <br />

    document.getElementById("ddlResourceType").options.length=0; <br />

<br />

    动态删除select中的某一项option: <br />

    document.getElementById("ddlResourceType").options.remove(indx); </p>

<p> 动态添加select中的项option: <br />

    document.getElementById("ddlResourceType").options.add(new Option(text,value)); </p>

<p> 上面在IE和FireFox都能测试成功,希望以后你可以用上。 <br />

    其实用标准的DOM操作也可以,就是document.createElement,appendChild,removeChild之类的。 </p>

<p>取值方面<br />

    function getvalue(obj)<br />

    {<br />

    var m=obj.options[obj.selectedIndex].value<br />

    alert(m);//获取value<br />

    var n=obj.options[obj.selectedIndex].text<br />

    alert(n);//获取文本<br />

    }<br />

</p>

<p>例子:</p>

<table width="80%" border="0" align="center" cellpadding="1" cellspacing="1" style="border-style:double">

    <tr>

      <td width="50%" height="41" ><div align="center">

      

            <select name="xt" id="xt" onchange="xlbchange(this.value)">

          <option selected="selected">请选择作品系统</option>

                  <option value="http://www.mamicode.com/1">理念视别系统</option>

                  <option value="http://www.mamicode.com/2">视觉识别系统</option>

                  <option value="http://www.mamicode.com/3">环境视别系统</option>

                  <option value="http://www.mamicode.com/4">行为视别系统</option>         

        </select>

               

      </div></td>

      <td width="61%" ><div align="center">

        <select name="lb" id="lb">

   <option selected="selected">请选择作品类别</option>

        </select>

      </div></td>

    </tr>

    <tr>

      <td height="203" colspan="2" > </td>

    </tr>

</table>

</form>

</body>

</html>

 

JS动态添加option和删除option