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

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

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

None.gif
None.gif
None.gif
< form id = " f " >
None.gif
< select size = " 1 "  name = " s " >
None.gif
< option value = " lizi.name " > 梨子面馆 </ option >
None.gif
< option value = " baidu.com " > 百度 </ option >
None.gif
</ select >
None.gif
</ form >
None.gif
None.gif
None.gif
< script type = " text/javascript " >
None.gif
<!--
None.gif
var  f  =  document.getElementById( " f " );
None.gif
None.gif
// 获得select列表项数目
None.gif
document.write(f.s.options.length);
None.gifdocument.write(f.s.length);
None.gif
None.gif
// 当前选中项的下标(从0 开始)(有两种方法)
None.gif//
如果选择了多项,则返回第一个选中项的下标
None.gif
document.write(f.s.options.selectedIndex);
None.gifdocument.write(f.s.selectedIndex);
None.gif
None.gif
// 检测某一项是否被选中
None.gif
document.write(f.s.options[ 0 ].selected);
None.gif
None.gif
// 获得某一项的值和文字
None.gif
document.write(f.s.options[ 0 ].value);
None.gifdocument.write(f.s.options[
1 ].text);
None.gif
None.gif
// 删除某一项
None.gif
f.s.options[ 1 =   null ;
None.gif
None.gif
// 追加一项
None.gif
f.s.options[f.s.options.length]  =   new  Option( " 追加的text " " 追加的value " );
None.gif
None.gif
// 更改一项
None.gif
f.s.options[ 1 =   new  Option( " 更改的text " " 更改的value " );
None.gif
// 也可以直接设置该项的 text 和 value
None.gif//
-->
None.gif
</ script >
None.gif
None.gif
None.gif
// 全选列表中的项
None.gif
function  SelectAllOption(list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
for (var i=0; i<list.options.length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giflist.options[i].selected 
= true;
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
// 反选列表中的项
None.gif
function  DeSelectOptions(list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
for (var i=0; i<list.options.length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giflist.options[i].selected 
= !list.options[i].selected;
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
// 返回列表中选择项数目
None.gif
function  GetSelectedOptionsCnt(list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
var cnt = 0;
InBlock.gif
var i = 0;
InBlock.gif
for (i=0; i<list.options.length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
if (list.options[i].selected)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifcnt
++;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif
return cnt;
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
// 清空列表
None.gif
function  ClearList(list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
while (list.options.length > 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giflist.options[
0= null;
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
// 删除列表选中项
None.gif//
返回删除项的数量
None.gif
function  DelSelectedOptions(list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
var i = 0;
InBlock.gif
var deletedCnt = 0;
InBlock.gif
while (i < list.options.length)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
if (list.options[i].selected)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giflist.options[i] 
= null;
InBlock.gifdeletedCnt
++;
ExpandedSubBlockEnd.gif}

InBlock.gif
else
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifi
++;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif
return deletedCnt;
ExpandedBlockEnd.gif}

None.gif
// 此函数查找相应的项是否存在
None.gif//
repeatCheck是否进行重复性检查
None.gif//
若为"v",按值进行重复值检查
None.gif//
若为"t",按文字进行重复值检查
None.gif//
若为"vt",按值和文字进行重复值检查
None.gif//
其它值,不进行重复性检查,返回false
None.gif
function  OptionExists(list, optText, optValue, repeatCheck)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
var i = 0;
InBlock.gif
var find = false;
InBlock.gif
InBlock.gif
if (repeatCheck == "v")
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//按值进行重复值检查
InBlock.gif
for (i=0; i<list.options.length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
if (list.options[i].value == optValue)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giffind 
= true;
InBlock.gif
break;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

InBlock.gif
else if (repeatCheck == "t")
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//按文字进行重复检查
InBlock.gif
for (i=0; i<list.options.length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
if (list.options[i].text == optText)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giffind 
= true;
InBlock.gif
break;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

InBlock.gif
else if (repeatCheck == "vt")
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//按值和文字进行重复检查
InBlock.gif
for (i=0; i<list.options.length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
if ((list.options[i].value == optValue) && (list.options[i].text ==
InBlock.gif
InBlock.gifoptText))
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giffind 
= true;
InBlock.gif
break;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif
return find;
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
// 向列表中追加一个项
None.gif//
list 是要追加的列表
None.gif//
optText 和 optValue 分别表示项的文字和值
None.gif//
repeatCheck 是否进行重复性检查,参见 OptionExists
None.gif//
添加成功返回 true,失败返回 false
None.gif
function  AppendOption(list, optText, optValue, repeatCheck)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
if (!OptionExists(list, optText, optValue, repeatCheck))
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giflist.options[list.options.length] 
= new Option(optText, optValue);
InBlock.gif
return true;
ExpandedSubBlockEnd.gif}

InBlock.gif
else
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
return false;
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

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

None.gif查的追加项
None.gif
// optText 和 optValue 分别表示项的文字和值
None.gif
function  InsertOption(list, index, optText, optValue)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
var i = 0;
InBlock.gif
for (i=list.options.length; i>index; i--)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giflist.options[i] 
= new Option(list.options[i-1].text, list.options[i-
InBlock.gif
InBlock.gif
1].value);
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.giflist.options[index] 
= new Option(optText, optValue);
ExpandedBlockEnd.gif}

None.gif
// 将一个列表中的项导到另一个列表中
None.gif//
repeatCheck是否进行重复性检查,参见OptionExists
None.gif//
deleteSource项导到目标后,是否删除源列表中的项
None.gif//
返回影响的项数量
None.gif
function  ListToList(sList, dList, repeatCheck, deleteSource)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
//所影响的行数
InBlock.gif
var lines = 0;
InBlock.gif
var i = 0;
InBlock.gif
while (i<sList.options.length)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
if (sList.options[i].selected && AppendOption(dList, sList.options[i].text,
InBlock.gif
InBlock.gifsList.options[i].value, repeatCheck))
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//添加成功
InBlock.gif
lines++;
InBlock.gif
if (deleteSource)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//删除源列表中的项
InBlock.gif
sList.options[i] = null;
ExpandedSubBlockEnd.gif}

InBlock.gif
else
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifi
++;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

InBlock.gif
else
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifi
++;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif
return lines;
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
// 列表中选中项上移
None.gif
function  MoveSelectedOptionsUp(list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
var i = 0;
InBlock.gif
var value = "";
InBlock.gif
var text = "";
InBlock.gif
for (i=0; i<(list.options.length-1); i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
if (!list.options[i].selected && list.options[i+1].selected)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifvalue 
= list.options[i].value;
InBlock.giftext 
= list.options[i].text;
InBlock.giflist.options[i] 
= new Option(list.options[i+1].text, list.options
InBlock.gif
InBlock.gif[i
+1].value);
InBlock.giflist.options[i].selected 
= true;
InBlock.giflist.options[i
+1= new Option(text, value);
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
// 列表中选中项下移
None.gif
function  MoveSelectedOptionsDown(list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
var i = 0;
InBlock.gif
var value = "";
InBlock.gif
var text = "";
InBlock.gif
for (i=list.options.length-1; i>0; i--)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
InBlock.gif
InBlock.gif
if (!list.options[i].selected && list.options[i-1].selected)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifvalue 
= list.options[i].value;
InBlock.giftext 
= list.options[i].text;
InBlock.giflist.options[i] 
= new Option(list.options[i-1].text, list.options[i-
InBlock.gif
InBlock.gif
1].value);
InBlock.giflist.options[i].selected 
= true;
InBlock.giflist.options[i
-1= new Option(text, value);
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}
 

转载于:https://www.cnblogs.com/wanlang/archive/2007/08/16/858748.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值