js 操作select和option常用代码整理


Posted in Javascript onDecember 13, 2012

1、获取选中select的value和text,html代码如下

<select id="mySelect"> 
<option value="1">one</option> 
<option value="2">two</option> 
<option value="3">three</option> 
</select>

则可通过以下script代码s来获取选中的value和text
$("#mySelect").val(); //获取选中记录的value值 
$("#mySelect option:selected").text(); //获取选中记录的text值

2、运用new Option("文本","值")方法添加选项option
var obj = document.getElementById("mySelect");obj.add(new Option("4","4"));

3、删除所有选项option
var obj = document.getElementById("mySelect");obj.options.length = 0;

4、删除选中选项option
var obj = document.getElementById("mySelect");var index = obj.selectedIndex;obj.options.remove(index);

5、修改选中选项option
var obj = document.getElementById("mySelect"); 
var index = obj.selectedIndex; 
obj.options[index] = new Option("three",3); //更改对应的值 
obj.options[index].selected = true; //保持选中状态

6、删除select
var obj = document.getElementById("mySelect"); 
obj.parentNode.removeChild(obj); //移除当前对象

7、select选择的响应事件
$("#mySelect").change(function(){ //添加所需要执行的操作代码})
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 表格隔行颜色
Dec 02 Javascript
关于JavaScript中的关联数组分析
Apr 09 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 Javascript
webpack独立打包和缓存处理详解
Apr 03 Javascript
vue2.0多条件搜索组件使用详解
Mar 26 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
Angularjs添加排序查询功能的实例代码
Oct 24 Javascript
JS实现十字坐标跟随鼠标效果
Dec 25 Javascript
JS模拟实现哈希表及应用详解
May 04 Javascript
angular多语言配置详解
May 16 Javascript
Python版实现微信公众号扫码登陆
May 28 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
JavaScript 产生不重复的随机数三种实现思路
Dec 13 #Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
Dec 13 #Javascript
js onkeypress与onkeydown 事件区别详细说明
Dec 13 #Javascript
javascript 文件的同步加载与异步加载实现原理
Dec 13 #Javascript
javaScript复制功能调用实现方案
Dec 13 #Javascript
js遍历td tr等html元素
Dec 13 #Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 #Javascript
You might like
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
浅谈js中的bind
2019/03/18 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python用GET方法上传文件
2015/03/10 Python
编写Python CGI脚本的教程
2015/06/29 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
Python实现的双色球生成功能示例
2017/12/18 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
美国温暖商店:The Warming Store
2018/12/15 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
医学检验专业个人求职信范文
2013/12/04 职场文书
大学生自荐信
2013/12/11 职场文书
学生个人自我鉴定
2014/03/26 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
python中的装饰器该如何使用
2021/06/18 Python
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
MySQL分区表实现按月份归类
2021/11/01 MySQL
用JS写一个发布订阅模式
2021/11/07 Javascript