js select option对象小结


Posted in Javascript onDecember 20, 2013

一基础理解:

var e = document.getElementById("selectId");

e. options= new Option("文本","值") ;

//创建一个option对象,即在<select>标签中创建一个或多个<option value="值">文本</option>

//options是个数组,里面可以存放多个<option value="值">文本</option>这样的标签

1:options[ ]数组的属性:

length属性---------长度属性

selectedIndex属性--------当前被选中的框中的文本的索引值,此索引值是内存自动分配的(0,1,2,3.....)对应(第一个文本值,第二个文本值,第三个文本值,第四个文本值..........)

2:单个option的属性(---obj.options[obj.selecedIndex]是指定的某个<option>标签,是一个---)

text属性---------返回/指定 文本

value属性------返回/指定 值,与<options value="...">一致。

index属性-------返回下标,

selected 属性-------返回/指定该对象是否被选中.通过指定 true 或者 false,可以动态的改变选中项

defaultSelected 属性-----返回该对象默认是否被选中。true / false。

3:option的方法

增加一个<option>标签-----obj.options.add(new("文本","值"));<增>

删除一个<option>标签-----obj.options.remove(obj.selectedIndex)<删>

获得一个<option>标签的文本-----obj.options[obj.selectedIndex].text<查>

修改一个<option>标签的值-----obj.options[obj.selectedIndex]=new Option("新文本","新值")<改>

删除所有<option>标签-----obj.options.length = 0

获得一个<option>标签的值-----obj.options[obj.selectedIndex].value

注意:

a:上面的写的是如这样类型的方法obj.options.function()而不写obj.funciton,是因为为了考虑在IE和FF 下的兼容,如obj.add()只能在IE中有效.

b:obj.option中的option不需要大写,new Option中的Option需要大写

二 应用

<html> 
<head> 
<script language="javascript"> 
function number(){ 
var obj = document.getElementById("mySelect"); 
    //obj.options[obj.selectedIndex] = new Option("我的吃吃","4");//在当前选中的那个的值中改变 
    //obj.options.add(new Option("我的吃吃","4"));再添加一个option 
    //alert(obj.selectedIndex);//显示序号,option自己设置的 
    //obj.options[obj.selectedIndex].text = "我的吃吃";更改值 
   //obj.remove(obj.selectedIndex);删除功能 
} 
</script> 
</head> 
<body> 
<select id="mySelect"> 
     <option>我的包包</option> 
     <option>我的本本</option> 
     <option>我的油油</option> 
     <option>我的担子</option> 
</select> 
<input type="button" name="button" value="查看结果" onclick="number();"> 
</body> 
</html>

根据这些东西,自己用JQEURY AJAX+JSON实现了一个小功能如下:

JS代码:(只取了于SELECT相关的代码)

/** 
   * @description  构件联动下拉列表 (用JQUERY 的AJAX配合JSON实现) 
   * @prarm  selectId 下拉列表的ID 
   * @prarm  method  要调用的方法名称 
   * @prarm  temp 此处存放软件ID 
   * @prarm  url  要跳转的地址 
   */ 
function  linkAgeJson(selectId,method,temp,url){    
      $j.ajax({     
            type: "get",//使用get方法访问后台 
            dataType: "json",//返回json格式的数据 
            url: url,//要访问的后台地址 
            data: "method=" + method+"&temp="+temp,//要发送的数据         
            success: function(msg){//msg为返回的数据,在这里做数据绑定 
                var data = msg.lists; 
                coverJsonToHtml(selectId,data);              
            } 
        }); 
} 
/** 
* @description  将JSON数据转换成HTML数据格式 
* @prarm selectId 下拉列表的ID 
* @prarm  nodeArray 返回的JSON数组 
* 
*/ 
function coverJsonToHtml(selectId,nodeArray){ 
//get select 
   var tempSelect=$j("#"+selectId); 
   //clear select value 
   isClearSelect(selectId,'0');    
var tempOption=null; 
for(var i=0;i<nodeArray.length;i++){ 
//create select Option 
tempOption= $j('<option value="'+nodeArray[i].dm+'">'+nodeArray[i].mc+'</option> '); 
//put Option to select 
tempSelect.append(tempOption); 
        } 
        // 获取退化构件列表 
       getCpgjThgl(selectId,'thgjDm'); 
   } 
   /** 
   * @description  清空下拉列表的值 
   * @prarm selectId 下拉列表的ID 
   * @prarm index 开始清空的下标位置 
   */ 
  function isClearSelect(selectId,index){ 
     var length=document.getElementById(selectId).options.length; 
while(length!=index){ 
      //长度是在变化的,因为必须重新获取  
          length=document.getElementById(selectId).options.length; 
          for(var i=index;i<length;i++) 
             document.getElementById(selectId).options.remove(i); 
         length=length/2; 
     } 
   } 
/** 
* @description 获取退化构件列表 
* @prarm  selectId1 引用软件下拉列表的ID 
* @prarm  selectId2 退化构件下拉列表的ID 
*/ 
   function getCpgjThgl(selectId1,selectId2){ 
   var obj1=document.getElementById(selectId1);//引用软件下拉列表 
   var obj2=document.getElementById(selectId2);//退化构件下拉列表 
   var len=obj1.options.length; 
  //当引用软件列表长度等于1时返回,不做操作 
   if(len==1){ 
          return false; 
   } 
   //清空下拉列表的值,两种方式都可以 
  // isClearSelect(selectId2,'1');  
            document.getElementById(selectId2).length=1; 
   for(var i=0;i<len; i++){ 
var option= obj1.options[i];  
//引用软件被选中项不加入 
if(i!=obj1.selectedIndex){ 
//克隆OPTION并添加到SELECT中   
obj2.appendChild(option.cloneNode(true)); 
}  
} 
   } 

HTML代码:
<TABLE width="100%" border=0 align="left" cellPadding=0 cellSpacing=1> 
  <tr> 
<td  class="Search_item_18">  <span class="Edit_mustinput">*</span>引用软件:</td> 
<td  class="Search_content_82"> 
<input name="yyrjMc" id="yyrjMc" type="text" class="Search_input" tabindex="3"  size="30" > 
<input name="yyrjDm" id="yyrjDm" type="hidden" > 
<input type="button" class="Search_button_select" 
onClick="linkAgeTree('linkage','yyrjtree','yyrjMc','yyrjDm','linkageTree','1');" value="选择..."> 
</td> 
  </tr> 
  <tr> 
<td class="Search_item"> <span class="Edit_mustinput">*</span>引用分版:</td> 
<td  class="Search_content" id="yyfb"> 
  <select name="yyfbDm" style="width:160" id="yyfbDm" onChange="getCpgjThgl('yyfbDm','thgjDm')"> 
  </select> 
</td> 
  </tr> 
  <tr> 
<td class="Search_item">退化构件:</td> 
<td  class="Search_content" id="thgj"> 
   <select name="thgjDm" style="width:160" id="thgjDm"> 
<option value="-1" selected>无</option> 
   </select> 
</td> 
  </tr> 
</TABLE>
Javascript 相关文章推荐
SWFObject Flash js调用类
Jul 08 Javascript
javascript 处理事件绑定的一些兼容写法
Dec 24 Javascript
javascript入门基础之私有变量
Feb 23 Javascript
深入理解JavaScript是如何实现继承的
Dec 12 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
Jun 09 Javascript
原生js实现jquery函数animate()动画效果的简单实例
Aug 21 Javascript
jstree的简单实例
Dec 01 Javascript
深入理解Javascript中的作用域链和闭包
Apr 25 Javascript
解析vue中的$mount
Dec 21 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
微信jssdk逻辑在vue中的运用详解
Nov 14 Javascript
javascript 按键事件(兼容各浏览器)
Dec 20 #Javascript
js与jQuery 获取父窗、子窗的iframe
Dec 20 #Javascript
调用HttpHanlder的几种返回方式小结
Dec 20 #Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 #Javascript
jquery prop的使用介绍及与attr的区别
Dec 19 #Javascript
js获取select选中的option的text示例代码
Dec 19 #Javascript
js 高效去除数组重复元素示例代码
Dec 19 #Javascript
You might like
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
Javascript与flash交互通信基础教程
2008/08/07 Javascript
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
python和C语言混合编程实例
2014/06/04 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
python学生信息管理系统(初级版)
2018/10/17 Python
python实现按行分割文件
2019/07/22 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
详解python with 上下文管理器
2020/09/02 Python
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
九州传奇上机题
2014/07/10 面试题
开学典礼感言
2014/02/16 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
2014年技术部工作总结
2014/12/12 职场文书
毕业酒会致辞
2015/07/29 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
Win11查看设备管理器
2022/04/19 数码科技