js动态改变select选择变更option的index值示例


Posted in Javascript onJuly 10, 2014
document.getElementById("louyuming").options[0].selected=true;

function jsSelectIsExitItem(objSelect, objItemValue) { 
var isExit = false; 
for (var i = 0; i < objSelect.options.length; i++) { 
if (objSelect.options[i].value == objItemValue) { 
isExit = true; 
break; 
} 
} 
return isExit; 
}

Javascript 操作select是表单中常见的一种,今天删除多个select值的时候出现了问题,搞了半天原来是索引引起的(即删除的时候要从索引大的开始删,然后再 删除索引小的,否则删除了索引小的后索引大的索引就变化了,再删除时就会出现问题--问题的关键是for循环是要从大到小,而不是常规的从0到 length)

// 4.删除select中选中的项 
function jsRemoveSelectedItemFromSelect(objSelect) { 
var length = objSelect.options.length - 1; 
for(var i = length; i >= 0; i--){ 
if(objSelect[i].selected == true){ 
objSelect.options[i] = null; 
} 
} 
}

1判断select选项中 是否存在Value="paraValue"的Item
2向select选项中 加入一个Item
3从select选项中 删除一个Item
4删除select中选中的项
5修改select选项中 value="paraValue"的text为"paraText"
6设置select中text="paraText"的第一个Item为选中
7设置select中value="paraValue"的Item为选中
8得到select的当前选中项的value
9得到select的当前选中项的text
10得到select的当前选中项的Index
11清空select的项

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

动态删除select中的所有options:

function deleteAllOptions(sel){ 
sel.options.length=0; 
}

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

function deleteOption(sel,indx){ 
sel.options.remove(indx); 
}

动态添加select中的项option:

function addOption(sel,text,value){ 
sel.options.add(new Option(text,value)); 
}

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

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

js 代码

// 1.判断select选项中 是否存在Value="paraValue"的Item 
function jsSelectIsExitItem(objSelect, objItemValue) { 
var isExit = false; 
for (var i = 0; i < objSelect.options.length; i++) { 
if (objSelect.options[i].value == objItemValue) { 
isExit = true; 
break; 
} 
} 
return isExit; 
} 

// 2.向select选项中 加入一个Item 
function jsAddItemToSelect(objSelect, objItemText, objItemValue) { 
//判断是否存在 
if (jsSelectIsExitItem(objSelect, objItemValue)) { 
alert("该Item的Value值已经存在"); 
} else { 
var varItem = new Option(objItemText, objItemValue); 
objSelect.options.add(varItem); 
alert("成功加入"); 
} 
} 

// 3.从select选项中 删除一个Item 
function jsRemoveItemFromSelect(objSelect, objItemValue) { 
//判断是否存在 
if (jsSelectIsExitItem(objSelect, objItemValue)) { 
for (var i = 0; i < objSelect.options.length; i++) { 
if (objSelect.options[i].value == objItemValue) { 
objSelect.options.remove(i); 
break; 
} 
} 
alert("成功删除"); 
} else { 
alert("该select中 不存在该项"); 
} 
} 


// 4.删除select中选中的项 
function jsRemoveSelectedItemFromSelect(objSelect) { 
var length = objSelect.options.length - 1; 
for(var i = length; i >= 0; i--){ 
if(objSelect[i].selected == true){ 
objSelect.options[i] = null; 
} 
} 
} 

// 5.修改select选项中 value="paraValue"的text为"paraText" 
function jsUpdateItemToSelect(objSelect, objItemText, objItemValue) { 
//判断是否存在 
if (jsSelectIsExitItem(objSelect, objItemValue)) { 
for (var i = 0; i < objSelect.options.length; i++) { 
if (objSelect.options[i].value == objItemValue) { 
objSelect.options[i].text = objItemText; 
break; 
} 
} 
alert("成功修改"); 
} else { 
alert("该select中 不存在该项"); 
} 
} 

// 6.设置select中text="paraText"的第一个Item为选中 
function jsSelectItemByValue(objSelect, objItemText) { 
//判断是否存在 
var isExit = false; 
for (var i = 0; i < objSelect.options.length; i++) { 
if (objSelect.options[i].text == objItemText) { 
objSelect.options[i].selected = true; 
isExit = true; 
break; 
} 
} 
//Show出结果 
if (isExit) { 
alert("成功选中"); 
} else { 
alert("该select中 不存在该项"); 
} 
} 

// 7.设置select中value="paraValue"的Item为选中 
objSelect.value = objItemValue; 

// 8.得到select的当前选中项的value 
var currSelectValue = objSelect.value; 

// 9.得到select的当前选中项的text 
var currSelectText = objSelect.options[document.all.objSelect.selectedIndex].text; 

// 10.得到select的当前选中项的Index 
var currSelectIndex = objSelect.selectedIndex; 

// 11.清空select的项 
objSelect.options.length = 0;

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

<!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">
<!--
// Author: i@lxl.cn
// Modify: i@cnlei.com
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" 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>
</body>
</html>
Javascript 相关文章推荐
javascript options属性集合操作代码
Dec 28 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Jan 21 Javascript
jQuery中将函数赋值给变量的调用方法
Mar 23 Javascript
使用jquery操作session方法分享
Jan 22 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 Javascript
Bootstrap框架安装使用详解
Jan 21 Javascript
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
JavaScript模块管理的简单实现方式详解
Jun 15 Javascript
Vue props中Object和Array设置默认值操作
Jul 30 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
Jul 10 #Javascript
js确认删除对话框适用于a标签及submit
Jul 10 #Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 #Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
Sep 12 #Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
Jul 09 #Javascript
jQuery获取选中内容及设置元素属性的方法
Jul 09 #Javascript
js数组与字符串的相互转换方法
Jul 09 #Javascript
You might like
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
php数据序列化测试实例详解
2017/08/12 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
python通过函数属性实现全局变量的方法
2015/05/16 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
python selenium 获取接口数据的实现
2020/12/07 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
Windows和Linux动态库应用异同
2016/07/28 面试题
网上签名寄语活动留言
2014/01/18 职场文书
淘宝活动策划方案
2014/02/06 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
城市创卫标语
2014/06/17 职场文书
2014年招生工作总结
2014/11/26 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
Golang jwt身份认证
2022/04/20 Golang