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 相关文章推荐
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 Javascript
JavaScript中获取鼠标位置相关属性总结
Oct 11 Javascript
javascript关于继承解析
May 10 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 Javascript
jQuery制作网页版选项卡
Jul 28 Javascript
AngularJS中transclude用法详解
Nov 03 Javascript
微信小程序实现横向增长表格的方法
Jul 24 Javascript
VsCode与Node.js知识点详解
Sep 05 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
Vue事件处理原理及过程详解
Mar 11 Javascript
vue 项目引入echarts 添加点击事件操作
Sep 09 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中使用xmlreader读取xml数据示例
2014/12/29 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
详解Python中的序列化与反序列化的使用
2015/06/30 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
python实现红包裂变算法
2016/02/16 Python
单利模式及python实现方式详解
2018/03/20 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
企划主管岗位职责
2013/12/12 职场文书
运动会开幕式解说词
2014/02/05 职场文书
班班通校本培训方案
2014/03/12 职场文书
质量承诺书范文
2014/03/27 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
职工年度考核评语
2014/12/31 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
如何利用Python实现一个论文降重工具
2021/07/09 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL