javascript对下拉列表框(select)的操作

这篇文章,主要是关于javascript和select相关的最基本方法

下面是我们例子的基础;这不是一个标准的表单。

< form  id ="f" >  
< select  size ="1"  name ="s" >  
< option  value ="lizi.name" > 梨子面馆 </ option >  
< option  value ="baidu.com" > 百度 </ option >  
</ select >  
</ form >  

 

---------------------------------------------------------------------------

< script type = " text/javascript " >  
<!--  
var  f  =  document.getElementById( " f " ); 

// 获得select列表项数目 
document.write(f.s.options.length); 
document.write(f.s.length); 

// 当前选中项的下标(从0 开始)(有两种方法) 
//
如果选择了多项,则返回第一个选中项的下标 
document.write(f.s.options.selectedIndex); 
document.write(f.s.selectedIndex); 

// 检测某一项是否被选中 
document.write(f.s.options[ 0 ].selected); 

// 获得某一项的值和文字 
document.write(f.s.options[ 0 ].value); 
document.write(f.s.options[
1 ].text); 

// 删除某一项 
f.s.options[ 1 =   null

// 追加一项 
f.s.options[f.s.options.length]  =   new  Option( " 追加的text " " 追加的value " ); 

// 更改一项 
f.s.options[ 1 =   new  Option( " 更改的text " " 更改的value " ); 
// 也可以直接设置该项的 text 和 value 
//
--> 
</ script >  


// 全选列表中的项 
function  SelectAllOption(list) 

for (var i=0; i<list.options.length; i++

list.options[i].selected 
= true
}
 
}
 


// 反选列表中的项 
function  DeSelectOptions(list) 

for (var i=0; i<list.options.length; i++

list.options[i].selected 
= !list.options[i].selected; 
}
 
}
 


// 返回列表中选择项数目 
function  GetSelectedOptionsCnt(list) 

var cnt = 0
var i = 0
for (i=0; i<list.options.length; i++

if (list.options[i].selected) 

cnt
++
}
 
}
 

return cnt; 
}
 


// 清空列表 
function  ClearList(list) 

while (list.options.length > 0

list.options[
0= null
}
 
}
 


// 删除列表选中项 
//
返回删除项的数量 
function  DelSelectedOptions(list) 

var i = 0
var deletedCnt = 0
while (i < list.options.length) 

if (list.options[i].selected) 

list.options[i] 
= null
deletedCnt
++
}
 
else 

i
++
}
 
}
 

return deletedCnt; 
}
 
// 此函数查找相应的项是否存在 
//
repeatCheck是否进行重复性检查 
//
若为"v",按值进行重复值检查 
//
若为"t",按文字进行重复值检查 
//
若为"vt",按值和文字进行重复值检查 
//
其它值,不进行重复性检查,返回false 
function  OptionExists(list, optText, optValue, repeatCheck) 

var i = 0
var find = false

if (repeatCheck == "v"

//按值进行重复值检查 
for (i=0; i<list.options.length; i++

if (list.options[i].value == optValue) 

find 
= true
break
}
 
}
 
}
 
else if (repeatCheck == "t"

//按文字进行重复检查 
for (i=0; i<list.options.length; i++

if (list.options[i].text == optText) 

find 
= true
break
}
 
}
 
}
 
else if (repeatCheck == "vt"

//按值和文字进行重复检查 
for (i=0; i<list.options.length; i++

if ((list.options[i].value == optValue) && (list.options[i].text == 

optText)) 

find 
= true
break
}
 
}
 
}
 

return find; 
}
 


// 向列表中追加一个项 
//
list 是要追加的列表 
//
optText 和 optValue 分别表示项的文字和值 
//
repeatCheck 是否进行重复性检查,参见 OptionExists 
//
添加成功返回 true,失败返回 false 
function  AppendOption(list, optText, optValue, repeatCheck) 

if (!OptionExists(list, optText, optValue, repeatCheck)) 

list.options[list.options.length] 
= new Option(optText, optValue); 
return true
}
 
else 

return false
}
 
}
 


// 插入项 
//
index 插入位置,当插入位置 >= 列表现有项数量时,其作用相当于不进行重复检

查的追加项 
// optText 和 optValue 分别表示项的文字和值 
function  InsertOption(list, index, optText, optValue) 

var i = 0
for (i=list.options.length; i>index; i--

list.options[i] 
= new Option(list.options[i-1].text, list.options[i-

1].value); 
}
 

list.options[index] 
= new Option(optText, optValue); 
}
 
// 将一个列表中的项导到另一个列表中 
//
repeatCheck是否进行重复性检查,参见OptionExists 
//
deleteSource项导到目标后,是否删除源列表中的项 
//
返回影响的项数量 
function  ListToList(sList, dList, repeatCheck, deleteSource) 

//所影响的行数 
var lines = 0
var i = 0
while (i<sList.options.length) 

if (sList.options[i].selected && AppendOption(dList, sList.options[i].text, 

sList.options[i].value, repeatCheck)) 

//添加成功 
lines++
if (deleteSource) 

//删除源列表中的项 
sList.options[i] = null
}
 
else 

i
++
}
 
}
 
else 

i
++
}
 
}
 

return lines; 
}
 


// 列表中选中项上移 
function  MoveSelectedOptionsUp(list) 

var i = 0
var value = ""
var text = ""
for (i=0; i<(list.options.length-1); i++

if (!list.options[i].selected && list.options[i+1].selected) 

value 
= list.options[i].value; 
text 
= list.options[i].text; 
list.options[i] 
= new Option(list.options[i+1].text, list.options

[i
+1].value); 
list.options[i].selected 
= true
list.options[i
+1= new Option(text, value); 
}
 
}
 
}
 


// 列表中选中项下移 
function  MoveSelectedOptionsDown(list) 

var i = 0
var value = ""
var text = ""
for (i=list.options.length-1; i>0; i--



if (!list.options[i].selected && list.options[i-1].selected) 

value 
= list.options[i].value; 
text 
= list.options[i].text; 
list.options[i] 
= new Option(list.options[i-1].text, list.options[i-

1].value); 
list.options[i].selected 
= true
list.options[i
-1= new Option(text, value); 
}
 
}
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值