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 相关文章推荐
关于IE7 IE8弹出窗口顶上
Dec 22 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
通过javascript把图片转化为字符画
Oct 24 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
Sep 06 Javascript
QRCode.js二维码生成并能长按识别
Oct 16 Javascript
JSX在render函数中的应用详解
Sep 04 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 Javascript
vue.js实现照片放大功能
Jun 23 Javascript
jQuery实现简单日历效果
Jul 05 jQuery
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
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 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
Vue 项目代理设置的优化
2018/04/17 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Python创建系统目录的方法
2015/03/11 Python
Python lxml模块安装教程
2015/06/02 Python
Python可变参数函数用法实例
2015/07/07 Python
python之Socket网络编程详解
2016/09/29 Python
python编程嵌套函数实例代码
2018/02/11 Python
python检索特定内容的文本文件实例
2018/06/05 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
园林施工员岗位职责
2013/12/11 职场文书
中层竞聘演讲稿
2014/01/09 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
大学校园招聘会感想
2015/08/10 职场文书
给校长的建议书作文400字
2015/09/14 职场文书