`

js操作select标签

 
阅读更多

Select的动态添加、删除、移动、获取选中项的值、排序等等操作。



function AddOption(obj,text,value,title){
var selTarget = document.getElementByIdx(obj);
var seltitle = selTarget.title;

var op = document.createElement_x_x("option");
<wbr><wbr><wbr> op.text =text;<br><wbr><wbr><wbr> op.value =value;<br><wbr><wbr><wbr> op.title =title;<br><wbr><wbr><wbr> if(seltitle== title){<br><wbr><wbr><wbr> op.selected= true;<br><wbr><wbr><wbr> }<br>selTarget.add(op);<br>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

1、向Select里添加Option
//IE only,FF不支持Add方法
function fnAddItem(text,value)
{
var selTarget = document.getElementByIdx("selID");

selTarget.Add(new Option("text","value"));
}
//IE FF both OK
function fnAdd(oListbox, sName, sValue)
{
var oOption = document.createElement_x_x("option");
oOption.appendChild(document.createTextNode(sName));

if (arguments.length == 3)
{
oOption.setAttribute("value", sValue);
}

oListbox.appendChild(oOption);
}

2、删除Select里的Option
function fnRemoveItem()
{
var selTarget = document.getElementByIdx("selID");

if(selTarget.selectedIndex > -1)
{//说明选中
for(var i=0;i<selTarget.options.length;i++)
{
if(selTarget.options[i].selected)
{
selTarget.remove(i);

i = i - 1;//注意这一行
}
}
}
}
3、移动Select里的Option到另一个Select中
function fnMove(fromSelectID,toSelectID)
{
var from = document.getElementByIdx(fromSelectID);
var to = document.getElementByIdx(toSelectID);

for(var i=0;i<from.options.length;i++)
{
if(from.options[i].selected)
{
to.appendChild(from.options[i]);
i = i - 1;
}
}
} if 里的代码也可用下面几句代码代替
var op = from.options[i];
to.options.add(new Option(op.text, op.value));
from.remove(i);
4、Select里Option的上下移动
function fnUp()
{
var sel = document.getElementByIdx("selID");
for(var i=1; i < sel.length; i++)
{//最上面的一个不需要移动,所以直接从i=1开始
if(sel.options[i].selected)
{
if(!sel.options.item(i-1).selected)
{//上面的一项没选中,上下交换
var selText = sel.options[i].text;
var selValue = sel.options[i].value;

sel.options[i].text = sel.options[i-1].text;
sel.options[i].value = sel.options[i-1].value;
sel.options[i].selected = false;

sel.options[i-1].text = selText;
sel.options[i-1].value = selValue;
sel.options[i-1].selected=true;
}
}
}
}在进行上下两项互换时,也可以使用以下代码,但是效率很低,因为每一次的Dom操作都将导致整个页面的重新布局,所以不如直接修改元素的属性值。
var oOption = sel.options[i]
var oPrevOption = sel.options[i-1]
sel.insertBefore(oOption,oPrevOption);向下移动同理
function fnDown()
{
var sel = fnGetTarget("selLeftOrRight");
for(var i=sel.length -2; i >= 0; i--)
{//向下移动,最后一个不需要处理,所以直接从倒数第二个开始
if(sel.options.item(i).selected)
{
if(!sel.options.item(i+1).selected)
{//下面的Option没选中,上下互换
var selText = sel.options.item(i).text;
var selValue = sel.options.item(i).value;

sel.options.item(i).text = sel.options.item(i+1).text;
sel.options.item(i).value = sel.options.item(i+1).value;
sel.options.item(i).selected = false;

sel.options.item(i+1).text = selText;
sel.options.item(i+1).value = selValue;
sel.options.item(i+1).selected=true;
}
}
}
}
5、Select里Option的排序
这里借助Array对象的sort方法进行操作,sort方法接受一个function参数,可以在这个function里定义排序时使用的算法逻辑。
array.sort([compareFunction])里compareFunction接受两个参数(p1,p2),sort操作进行时,array对象会每次传两个值进去,进行比较;compareFunciton必须返回一个整数值:当返回值>0时,p1会排在p2后面;返回值<0时,p1会排在p2前面;返回值=0时,不进行操作。
例如: function fnCompare(a,b)
{
if (a < b)
return -1;
if (a > b)
return 1;
return 0;
}
var arr = new Array();
//add some value into arr
arr.sort(fnCompare);
//这里sort的操作结果就是arr里的项按由小到大的升序排序
//如果把fnCompare里改为
//if (a < b)
// return 1;
//if (a > b)
// return -1;
//return 0;
//则sort的结果是降序排列
好,下面就是对Select里Option的排序


//因为排序可以按Option的Value排序,也可以按Text排序,这里只演示按Value排序
function sortItem()
{
var sel = document.getElementByIdx("selID");
var selLength = sel.options.length;
var arr = new Array();
var arrLength;

//将所有Option放入array
for(var i=0;i<selLength;i++)
{
arr[i] = sel.options[i];
}
arrLength = arr.length;

arr.sort(fnSortByValue);//排序
//先将原先的Option删除
while(selLength--)
{
sel.options[selLength] = null;
}
//将经过排序的Option放回Select中
for(i=0;i<arrLength;i++)
{
fnAdd(sel,arr[i].text,arr[i].value);
//sel.add(new Option(arr[i].text,arr[i].value));
}
}
function fnSortByValue(a,b)
{
var aComp = a.value.toString();
var bComp = b.value.toString();

if (aComp < bComp)
return -1;
if (aComp > bComp)
return 1;
return 0;
}

排序时还可以有更多选项,比如将value值看做Integer或是String进行排序,得到的结果是不一样的。


分享到:
评论

相关推荐

    Jquery获取Select标签的值

    本篇文章将详细介绍如何利用 jQuery 来获取 Select 标签的值以及相关的表单元素操作。 #### 一、获取 Select 标签的值 ##### 1. 获取 Select 的 Value 值 要获取 Select 下拉框的当前选中值(即 value 属性的值)...

    Js操作Select大全(取值、设置选中等等)

    ### Js操作Select大全知识点详解 #### 一、概述 JavaScript(简称JS)是网页开发中不可或缺的一部分,尤其在处理用户界面交互方面具有重要作用。本文档将详细介绍如何利用原生JavaScript和jQuery来操作`&lt;select&gt;`...

    JavaScript操作select大全

    ### JavaScript操作select大全 在网页开发中,`&lt;select&gt;`元素是用于创建下拉列表的常用HTML标签之一。本文档提供了详细的JavaScript操作`&lt;select&gt;`元素的方法,包括判断选项是否被选中、增删改选项及其属性等实用...

    Jquery操作select标签例子

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作,包括对`&lt;select&gt;`标签的操作。本文将详细讲解如何使用jQuery来管理HTML中的`&lt;select&gt;`元素,包括选择、更改选项,获取选中项的文本、值...

    js操作select相关方法

    以上代码展示了JavaScript操作`select`元素的一些常见方法。首先,`jsSelectIsExitItem`函数用于检查`select`中是否存在指定`value`的选项。如果存在,它将返回`true`,否则返回`false`。接着,`jsAddItemToSelect`...

    超好用的select标签-带api

    在本篇文章中,我们将深入探讨如何使用`&lt;select&gt;`标签,并结合JavaScript API,来实现更丰富的交互功能。我们将涵盖以下几个方面: 1. **基本使用** - `&lt;select&gt;`标签的基本结构:`&lt;select&gt;&lt;/select&gt;`,其中可以...

    html最全的js javascript操作select 下拉框

    根据给定的文件标题、描述、标签以及部分内容,本文将深入解析HTML中使用JavaScript操作`&lt;select&gt;`下拉框的全面方法。`&lt;select&gt;`元素是网页表单中用于创建下拉列表的关键部分,而通过JavaScript,我们可以动态地添加...

    javascript操作Select标记中options集合

    这篇博客“javascript操作Select标记中options集合”深入探讨了如何利用JavaScript动态地管理和操作这些选项。以下是关于这个主题的一些关键知识点: 1. **DOM操作**:在JavaScript中,我们可以使用DOM(Document ...

    javascript 操作表单select的常用步骤

    ### JavaScript操作表单Select元素的常用步骤 在Web开发中,`&lt;select&gt;`标签用于创建一个下拉列表供用户选择选项。使用JavaScript可以方便地控制这些下拉列表的行为,例如添加、删除或修改选项等。下面详细介绍如何...

    Js操作Select大全.doc

    以上是JavaScript操作`&lt;select&gt;`标签的一些基本方法。在实际开发中,这些功能可能会作为更复杂交互的基础,例如动态加载数据、响应用户事件等。了解并熟练掌握这些操作,对于提升网页的交互性和用户体验至关重要。

    js获取select标签选中值的两种方式

    在JavaScript和jQuery中,获取`&lt;select&gt;`标签中选中选项的值是常见的操作,尤其在处理表单数据时。以下将详细介绍这两种方法,并提供一些相关的扩展知识。 ### JavaScript 获取选中值 #### 方法一:原生 ...

    Jquery 操作 Dom 标签 select

    ### Jquery 操作 Dom 标签 Select 在前端开发中,使用 jQuery 操作 DOM 元素是非常常见的需求之一。特别是对于表单元素如 `select`、`radio` 和 `checkbox` 的操作,更是频繁出现。下面我们将详细介绍如何使用 ...

    js之Select用法

    2. **通过JavaScript操作`select`元素** - 获取`select`元素:可以使用`document.getElementById('mySelect')`或`document.querySelector('#mySelect')`来获取`select`元素。 - 添加/删除选项: - 添加选项:`...

    分享带查询的select标签

    【标题】"分享带查询的select标签"涉及的是在网页开发中如何实现一个具有搜索功能的下拉选择框。在传统的HTML中,`&lt;select&gt;`标签用于创建一个下拉列表,但其默认功能并不支持用户输入关键词进行筛选。这篇博客(博文...

    实现select各种搜索功能

    本文将深入探讨如何利用JavaScript来增强`&lt;select&gt;`标签的搜索功能。 首先,我们需要了解基础的`&lt;select&gt;`结构。一个简单的`&lt;select&gt;`标签如下所示: ```html &lt;select id="mySelect"&gt; &lt;option value="option1"&gt;...

    双选框 两个<select>标签组成 高效代码清晰

    总结起来,这个项目利用了两个`&lt;select&gt;`标签和JavaScript实现了一个双向选择的组件,具备良好的用户体验和代码质量。开发者巧妙地运用了DOM操作、事件监听以及可能的Map数据结构,实现了选项的动态移动和提交功能。...

    js控制select相关方法

    这个标签用于创建下拉列表,可以通过JS来实现对下拉列表的选择、添加、删除和更新等操作。以下是对标题和描述中提到的JavaScript控制`select`相关方法的详细说明: 1. **判断 select 选项中 是否存在 Value=...

    动态加载select标签下拉框数据

    标题提到的“动态加载select标签下拉框数据”是指在用户交互时,根据需求动态地从服务器获取并填充HTML `&lt;select&gt;` 标签的选项,而不是一次性加载所有数据。这种技术常用于大数据量的下拉列表,以减少初始页面加载...

    JQ JS javascript 多选 多选下拉框 select bootstrap-select

    一个简单的多选下拉框可以通过在`&lt;select&gt;`标签中添加`multiple`属性来创建: ```html &lt;select multiple&gt; &lt;option value="option1"&gt;Option 1 &lt;option value="option2"&gt;Option 2 &lt;option value="option3"&gt;Option ...

    select2插件联动查询用到的css和js文件

    综上所述,通过引入select2.css和select2.js,结合适当的JavaScript代码,我们可以实现Select2插件的联动查询功能。在实际项目中,确保这两个文件被正确引用,并根据项目需求进行适当的配置和定制。

Global site tag (gtag.js) - Google Analytics