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 pagination插件实现无刷新分页代码
Oct 13 Javascript
Javascript 入门基础学习
Mar 10 Javascript
Javascript Function对象扩展之延时执行函数
Jul 06 Javascript
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
jquery $.each()使用探讨
Sep 23 Javascript
jQuery中eq()方法用法实例
Jan 05 Javascript
JavaScript电子时钟倒计时
Jan 09 Javascript
jQuery获取父元素及父节点的方法小结
Apr 14 Javascript
AngularJS动态菜单操作指令
Apr 25 Javascript
npm国内镜像 安装失败的几种解决方案
Jun 04 Javascript
webpack配置导致字体图标无法显示的解决方法
Mar 06 Javascript
javascript自定义日期比较函数用法示例
Jul 22 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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
php实现点击可刷新验证码
2015/11/07 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
python多进程实现进程间通信实例
2017/11/24 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
[原创]Python入门教程4. 元组基本操作
2018/10/31 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
python中os包的用法
2020/06/01 Python
Python中Yield的基本用法
2020/10/18 Python
pytorch中index_select()的用法详解
2021/01/06 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
关于圣诞节的广播稿
2014/01/26 职场文书
全国道德模范事迹
2014/02/01 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
php引用传递
2021/04/01 PHP
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python