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" οnchange="choice()">
   </select>
</div>
<input type=button value="显示" οnclick="show()">
<input type=button value="计算结点" οnclick="calc()">
<input type=button value="删除" οnclick="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 = 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" οnchange="watch_sel(this.form)"></select><br>
<script language="javascript">
<!--
watch_ini("我","你","妳","他","她","它","尔"); // 初始关键词
//-->
</script>
<input type="text" name="word" /><br />
<input type="button" value="增加" οnclick="watch_add(this.form);" />
<input type="button" value="修改" οnclick="watch_mod(this.form);" />
<input type="button" value="删除" οnclick="watch_del(this.form);" />
<input type="button" value="保存" οnclick="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" οnchange="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=[0,1,2,3];

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

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

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

     oOption.value=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=[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=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=[0,1,2,3];

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

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

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

     oOption.value=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=[0,1,2];

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

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

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

     oOption.value=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=0;  

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

zpmange.lb.options.add(oOption);

}

}

</script>

</head>

<body>

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

<p><select id="ddlResourceType" οnchange="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" οnchange="xlbchange(this.value)">

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

                  <option value="1">理念视别系统</option>

                  <option value="2">视觉识别系统</option>

                  <option value="3">环境视别系统</option>

                  <option value="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>

 

转载于:https://www.cnblogs.com/zhanghongqiang/p/4097496.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动态添加 option 可以使用 jQuery 或者原生 JavaScript 实现,以下是一个使用 jQuery 的示例: ```javascript // 添加一个 option $('#selectId').append('<option value="value">text</option>'); // 删除最后一个 option $('#selectId option:last').remove(); ``` 其中,`#selectId` 是 select 元素的 ID,`value` 和 `text` 分别是 option 的值和显示文本。 如果你想删除指定的 option,则可以使用以下代码: ```javascript // 删除指定 value 的 option $('#selectId option[value="value"]').remove(); ``` 同样地,如果想删除指定的索引位置的 option,可以使用以下代码: ```javascript // 删除指定索引位置的 option $('#selectId option:eq(index)').remove(); ``` 以上是使用 jQuery 实现动态添加删除 option 的方法,如果你想使用原生 JavaScript 实现,可以使用以下代码: ```javascript // 添加一个 option var option = document.createElement('option'); option.value = 'value'; option.text = 'text'; document.getElementById('selectId').appendChild(option); // 删除最后一个 option var select = document.getElementById('selectId'); select.options[select.options.length - 1] = null; ``` 同样地,如果想删除指定的 option,可以使用以下代码: ```javascript // 删除指定 value 的 option var select = document.getElementById('selectId'); for (var i = 0; i < select.options.length; i++) { if (select.options[i].value === 'value') { select.remove(i); break; } } // 删除指定索引位置的 option var select = document.getElementById('selectId'); select.remove(index); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值