javascript 关于select的一些基本操作方法总结

T1 >>> 创建一个新的select
var sel_obj = document.createElement(‘select‘);

T2 >>> 创建一个新的option
方式1:
var new_option = document.createElement(‘option‘);
new_option.text = ‘txt‘
new_option.value = ‘value‘
方式2:
var new_option = nre Option(‘txt‘,‘value‘);

T3 >>> 将option添加进数组 options
方式1:
try {
// 标准浏览器
sel_obj.add(new_option, sel_obj.options[x]); // 表示将 new_option 添加到sel_obj.options[x] 序列之前,
// 值为 null 表示将 new_option 添加到序列最后。
} catch (ex) {
// IE 浏览器
sel_obj.add(new_option, num);
// num 参数序列。值格式与标准浏览器有区别。可省略 。省略表示将 new_option 添加到序列最后。
}

add方法还要说明一下,主要是看到有人将add()方法的对象换成了sel_obj.options 经过测试:

try {
// 标准浏览器
sel_obj.options.add(new_option, sel_obj.options[x]); // 此处的 sel_obj 也可以用 select 的 id 值(必须是select的) s_id.options 一样可以使用.
// sel_obj.options[x] 没有 情况下,插入 options 序列 最后。
// sel_obj.options[x] *变化* 情况下,即使设置为null,new_option 均插入 options 序列 最前。
} catch (ex) {
// IE 浏览器
sel_obj.options.add(new_option, num);
// 表现和未用 options 结果一致
// num 参数序列。值格式与标准浏览器有区别。可省略 。省略表示将 new_option 添加到序列最后。
}

add() 方法是专用于 select 。如同 sel_obj.remove(index).
Array是没有 add() 方法的。

方式2:
sel_obj.appendChild (new_option );

方式3:
sel_obj.insertBefore (new_option,_option)
// 在已有的 _option 前插入 new_option ,如果没有设置_option ,则插入到最后。均为Node object。
// 所有浏览器均支持insertBefore。
// node.insertBefore(newnode,existingnode)
// newnode指新添加的 Node 对象 (必须)
// existingnode 指已有的 Node object (可选), 如果该参数没有,表示将newnode添加到node父节点最后。
// insertBefore 方法不只用于 select ,其他地方也可以。区别与 add() 方法。

注意 javescript 没有对应的 insertAfter () 方法。不过jquery 有 insertAfter() 方法。
可以自己定义一个:

function insertAfter(new_option, _option) {
var parent_option = _option.parentNode;
if (parentEl.lastChild == _option) {
parent_option.appendChild(new_option);
} else {
parent_option.insertBefore(new_option, _option.nextSibling);
}
}

方式4
sel_obj.options[sel_obj.options.length] = new Option (‘新文本‘,‘新值‘)
// 如果这里options[]的索引值小于length,则不会添加,只会修改已有的 option 值。

T4 >>> 将select添加到页面
document.body.appendChild(sel_obj);

T5 >>> 清除select的option选项
方式1
sel_obj.remove(index); // 清除指定索引的option项
sel_obj.options.remove(index)
// 如果指定的下标比 0 小,或者大于或等于选项的数目,remove() 方法会忽略它并什么也不做。

方式2
sel_obj.options[index] = null
// 如果把 options[] 数组中的一个元素设置为 null,那么选项就会从 Select 对象中删除。

方式3
sel_obj.length=0;
sel_obj.options.length=0; // 清除所有的option项
// 如果把 options.length 属性设置为 0 , Select 对象中所有选项都会被清除。

// options[] 说明:
// 集合并非一个普通的 HTMLcollection。为了和早期的浏览器向后兼容,这个集合有某种特殊的行为:
// 允许通过 Select 对象来改变显示的选项:
// 如果 options.length 属性的值比当前值小,出现在数组尾部的元素就会被丢弃。
// 可以通过构造函数 Option() 来创建一个新的 option 对象(需要设置 options.length 属性)。

// Select 对象属性:
// id 设置或返回下拉列表的 id。
// length 返回下拉列表中的选项数目。
// form 返回对包含下拉列表的表单的引用。 获取包含该select的form对象

A6 >>> 修改select的option选项
方式一
sel_obj.options[index]=new Option("新文本","新值"); // 此处index的值是修改的索引值

方式二
sel_obj.options[index].text = "新文本"
sel_obj.options[index].value = "新值"

A7 >>> 删除一个select
sel_obj.parentNode.removeChild(sel_obj);
sel_obj.parentNode.remove(); // 这个会将 sel_obj.parentNode 整个删除 。

注:获取 options的数组方式

sel_obj.getElementsByTagName("option")
// object NodeList
// 获取的是option数组 。但是与options还是有区别的。
// 比如设置
// sel_obj.getElementsByTagName("option") = ‘null‘ // 无效
// sel_obj.getElementsByTagName.length = 0 // 无效

sel_obj.options
// object HTMLoptionCollection

时间: 2024-08-05 07:50:44

javascript 关于select的一些基本操作方法总结的相关文章

Javascript获取select下拉框选中的的值

现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select id="test"  name="">     <option   value="1">text1</option>     <option   value="2">text2</option>    </select> co

JavaScript获取select下拉框中的第一个值

JavaScript获取select下拉框中的第一个值 1.说明 获取select下拉框中的第一个值 2.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

Javascript 操作select控件

转:Javascript 操作select控件大全(新增.修改.删除.选中.清空.判断存在等)Posted on 2007-08-08 14:56 礼拜一 阅读(5) 评论(0) 编辑 收藏 1判断select选项中 是否存在Value="paraValue"的Item  2向select选项中 加入一个Item  3从select选项中 删除一个Item  4删除select中选中的项  5修改select选项中 value="paraValue"的text为&q

JavaScript解决select下拉框中的内容太长显示不全的问题

JavaScript解决select下拉框中的内容太长显示不全的问题 1.说明 有些情况下,select下拉框的内容过长,导致部分看不见: 现在通过鼠标事件,让下拉框中的内容显示完全 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html

JavaScript向select下拉框中添加和删除元素

JavaScript向select下拉框中添加和删除元素 1.说明 a   利用append()方法向下拉框中添加元素 b   利用remove()方法移除下拉框中最后一个元素 2.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xm

javascript模拟select下拉菜单

javascript模拟select下拉菜单: 由于自带的select下拉菜单确实是不够美观,并且美化的潜力也不够大,所以对外观要求比较高的网站,基本都要使用自定义的select下拉菜单,下面就提供了一个简单的例子供大家参考,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="

JavaScript中的常用的数组操作方法

JavaScript中的常用的数组操作方法 一.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2,3]; var arr2 = [4,5]; var arr3 = arr1.concat(arr2); console.log(arr1); //[1, 2, 3] console.log(arr3); //[1, 2, 3, 4, 5] 二.join() join() 方法用于把数组中的所有元素

JavaScript获取Select下拉框Option的Value和Text值的方法

Js获取select下拉列表框各个Option的Value值相对比较容易,不过获取Text值却有点麻烦,对于一个初学JavaScript的 新手来说,可能一时还无从下手,那么就请看下本文的方法,以一个form表单中的Select下拉框菜单为例,来说明如何用JavaScript获取其 Value值和Text值: 示例表单,里面是一个select下拉列表框的各个列表项及值: <form name="form1"> <select name="testvalue&

javascript获取select 的id与值

<script type="text/javascript"> function showOptionId () { var type = document.getElementById ("select"); //获取select var typeId = type.options [type.selectedIndex].id; //获取option的ID var typeValue = type.options [type.selectedInde