js 操作select与option(示例讲解)


Posted in Javascript onDecember 20, 2013

1.动态创建select

     function createSelect(){
var mySelect = document.createElement_x("select");
          mySelect.id = "mySelect"; 
          document.body.appendChild(mySelect);
      }

2.添加选项option
     function addOption(){
          //根据id查找对象,
           var obj=document.getElementByIdx_x('mySelect');
           //添加一个选项
obj.add(new Option("文本","值"));    //这个只能在IE中有效
         obj.options.add(new Option("text","value")); //这个兼容IE与firefox
     }

3.删除所有选项option
     function removeAll(){
           var obj=document.getElementByIdx_x('mySelect');
obj.options.length=0;
     }

4.删除一个选项option
function removeOne(){
           var obj=document.getElementByIdx_x('mySelect');
           //index,要删除选项的序号,这里取当前选中选项的序号
var index=obj.selectedIndex;
obj.options.remove(index);
     }

5.获得选项option的值

var obj=document.getElementByIdx_x('mySelect');
var index=obj.selectedIndex; //序号,取当前选中选项的序号
var val = obj.options[index].value;

6.获得选项option的文本

var obj=document.getElementByIdx_x('mySelect');
var index=obj.selectedIndex; //序号,取当前选中选项的序号
var val = obj.options[index].text;

7.修改选项option

var obj=document.getElementByIdx_x('mySelect');
var index=obj.selectedIndex; //序号,取当前选中选项的序号
var val = obj.options[index]=new Option("新文本","新值");

8.删除select

function removeSelect(){
var mySelect = document.getElementByIdx_x("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.getElementByIdx_x(id)
    }
    function show()
    {
     var selectObj=$("area")
     var myOption=document.createElement_x("option")
     myOption.setAttribute("value","10")
     myOption.appendChild(document.createTextNode("上海"))
     var myOption1=document.createElement_x("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_x("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_x("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="显示" onclick="show()">
<input type=button value="计算结点" onclick="calc()">
<input type=button value="删除" onclick="remove()">
</body>
</html>

改进版:在select中添加、修改、删除option元素
function watch_ini(){ // 初始
for(var i=0; i<arguments.length; i++){
var word = document.createElement_x("OPTION");
word.text = arguments[i];
watch.keywords.add(word); // watch. is form name
}
}
function watch_add(f){ // 增加
var word = document.createElement_x("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.getElementByIdx_x("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.getElementByIdx_x("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" onchange="watch_sel(this.form)"></select><br>
<script language="javascript">
<!--
watch_ini("我","你","??","他","她","它","尔"); // 初始关键词
//-->
</script>
<input type="text" name="word" /><br />
<input type="button" value="增加" onclick="watch_add(this.form);" />
<input type="button" value="修改" onclick="watch_mod(this.form);" />
<input type="button" value="删除" onclick="watch_del(this.form);" />
<input type="button" value="保存" onclick="watch_set(this.form);" />
</form>

用一个字符串创建一个数组方法:
<script language="javascript">   
</body>
</html>
<script>
function spli(){
datastr="2,2,3,5,6,6";      
var str= new Array();    
   str=datastr.split(",");      
    for (i=0;i<str.length ;i++ )   
     { document.write(str[i]+"<br/>");  }   
}   
spli();   
</script>

今天调试了一段js,在ie上运行良好,在火狐上调试出现错误,查资料发现

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

因为这段代码,在网上查资料收藏了这篇文章,实时的温故js

Javascript 相关文章推荐
js资料toString 方法
Mar 13 Javascript
csdn 博客的css样式 v3
Feb 24 Javascript
Javascript玩转继承(一)
May 08 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
js实现索引图片切换效果
Nov 21 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
举例说明JavaScript中的实例对象与原型对象
Mar 11 Javascript
js实现多图左右切换功能
Aug 04 Javascript
Vue.js开发环境搭建
Nov 10 Javascript
基于vue2的table分页组件实现方法
Mar 20 Javascript
Vue2单一事件管理组件通信
May 09 Javascript
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
js插件方式打开pdf文件(浏览器pdf插件分享)
Dec 20 #Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 #Javascript
js select option对象小结
Dec 20 #Javascript
javascript 按键事件(兼容各浏览器)
Dec 20 #Javascript
js与jQuery 获取父窗、子窗的iframe
Dec 20 #Javascript
调用HttpHanlder的几种返回方式小结
Dec 20 #Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 #Javascript
You might like
用户的详细注册和判断
2006/10/09 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python http接口自动化脚本详解
2018/01/02 Python
Python中的Django基本命令实例详解
2018/07/15 Python
python实现归并排序算法
2018/11/22 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
python super的使用方法及实例详解
2019/09/25 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
parser.add_argument中的action使用
2020/04/20 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
高中生物教学反思
2014/02/05 职场文书
大型晚会策划方案
2014/02/06 职场文书
美术国培研修感言
2014/02/12 职场文书
安踏广告词改编版
2014/03/21 职场文书
《画家乡》教学反思
2014/04/22 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
保护环境的标语
2014/06/09 职场文书
男性健康日的活动方案
2014/08/18 职场文书
小学校长汇报材料
2014/08/20 职场文书
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS