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 相关文章推荐
基于jquery的分页控件(C#)
Jan 06 Javascript
JQuery选择器特辑 详细小结
May 14 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
May 12 Javascript
javascript iframe跨域详解
Oct 26 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
Vue.js实现移动端短信验证码功能
Mar 29 Javascript
详解vue 自定义marquee无缝滚动组件
Apr 09 Javascript
JavaScript中AOP的实现与应用
May 06 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
JavaScript 事件代理需要注意的地方
Sep 08 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 array_slice函数的使用以及参数详解
2008/08/30 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
JS跨域代码片段
2012/08/30 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
Python函数嵌套实例
2014/09/23 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
基于python操作ES实例详解
2019/11/16 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
中专生求职自荐信范文
2013/12/22 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
语文教学感言
2014/02/06 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
歌唱比赛主持词
2014/03/18 职场文书
相亲大会策划方案
2014/06/05 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
财务会计求职信范文
2015/03/20 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL