前面的话
选择框是通过<select>和<option>元素创建的,又称为下拉列表框。为了方便与这个控件交互,除了所有表单字段共有的属性和方法外,javascript还提供了一些属性和方法。本文将详细介绍选择框脚本
<select>
首先介绍关于<select>元素的相关属性
multiple
multiple属性表示是否允许多项选择
<select name="test" id="test"> <option>1</option> <option>2</option> <option>3</option> </select> <button id="btn">是否多选</button> <script> btn.onclick = function(){ test.multiple = !test.multiple; } </script>
type
选择框的type属性有两种,一种是'select-one',表示单选;另一种是'select-multiple',表示多选
<select name="test" id="test"> <option>1</option> <option>2</option> <option>3</option> </select> <button id="btn">是否多选</button> <div id="result"></div> <script> btn.onclick = function(){ test.multiple = !test.multiple; result.innerHTML = test.type; } </script>
value
选择框的value属性由当前选中项决定
1、如果没有选中的项,则选择框的value属性保存空字符串
2、如果有一个选中项,而且该项的value特性已经在HTML中指定,则选择框的value属性等于选中项的value特性。即使value特性的值是空字符串,也同样遵循此条规则
3、如果有一个选中项,但该项的value特性在HTML中未指定,则选择框的value属性等于该项的文本
4、如果有多个选中项,则选择框的value属性将依据前两条规则取得第一个选中项的值
[注意]IE8-浏览器只支持value属性的值,不支持选择的文本值
<select name="test" id="test"> <option value="a">1</option> <option value="b">2</option> <option>3</option> </select> <button id="btn1">是否多选</button> <button id="btn2">获取value值</button> <div id="result"></div> <script> btn1.onclick = function(){ test.multiple = !test.multiple; } btn2.onclick = function(){ result.innerHTML = test.value; } </script>
selectedIndex
selectedIndex属性返回基于0的选中项的索引,如果没有选中项,则值为-1。对于支持多选的控件,只保存选中项中第一项的索引
<select name="test" id="test"> <option value="a">1</option> <option value="b">2</option> <option>3</option> </select> <button id="btn1">是否多选</button> <button id="btn2">获取索引</button> <div id="result"></div> <script> btn1.onclick = function(){ test.multiple = !test.multiple; } btn2.onclick = function(){ result.innerHTML = test.selectedIndex; } </script>
size
size属性表示选择框的可见行数
<select name="test" id="test"> <option value="a">1</option> <option value="b">2</option> <option>3</option> </select> <button id="btn1">可见1行</button> <button id="btn2">可见2行</button> <button id="btn3">可见3行</button> <div id="result"></div> <script> btn1.onclick = function(){ test.size = 1; } btn2.onclick = function(){ test.size = 2; } btn3.onclick = function(){ test.size = 3; } </script>
options
options属性表示控件中所有的<option>元素
<select name="test" id="test"> <option value="a">1</option> <option value="b">2</option> <option>3</option> </select> <script> //[option, option, option, selectedIndex: 0] console.log(test.options) </script>
<option>
在DOM中,每个<option>元素都有一个HTMLOptionElement对象表示。为便于访问数据, HTMLOptionElement对象也定义了一些属性
[注意]IE浏览器不支持为<option>元素设置display:none
index
index属性表示当前选项在options集合中的索引
label
label属性表示当前选项的标签
[注意]IE9-浏览器不支持
selected
selected属性表示当前选项是否被选中。将这个属性设置为true可以选中当前选项
text
text属性表示选项的文本
value
value属性表示选项的值
[注意]在未指定value特性的情况下,IE8会返回空字符串;而其他浏览器返回text属性的值
<select name="test" id="test"> <option value="a" selected>1</option> <option value="b">2</option> <option>3</option> </select> <script> var option = test.options[0]; console.log(option.index);//0 console.log(option.label);//1,IE9-浏览器返回空字符串'' console.log(option.selected);//true console.log(option.text);//1 console.log(option.value);//a </script>
添加选项
【1】添加选项可以使用DOM的appendChild()或insertBefore()方法
<select name="test" id="test"> <option>1</option> <option>3</option> </select> <button id="btn">增加选项2</button> <script> btn.onclick = function(){ var newOption = document.createElement('option'); newOption.innerHTML = 2; test.insertBefore(newOption,test.options[1]); } </script>
【2】可以使用选择框的add()方法,add(newoption,reloption)方法向控件中插入新<option>元素,其位置在相关项(reloption)之前
使用Option构造函数来创建新选项,接受两个参数:文本(text)和值(value),第二个参数可选
<select name="test" id="test"> <option>1</option> <option>3</option> </select> <button id="btn">增加选项2</button> <script> btn.onclick = function(){ var newOption = new Option('2'); test.add(newOption,1); } </script>
移除选项
与添加选项类似,移除选项的方式也有很多种
【1】使用DOM的removeChild()方法
<select name="test" id="test"> <option>1</option> <option>2</option> <option>3</option> </select> <button id="btn">移除选项2</button> <script> btn.onclick = function(){ test.removeChild(test.options[1]); } </script>
【2】使用选择框的remove()方法。这个方法接受一个参数,即要移除选项的索引
[注意]使用该方法的好处是,若不存在被移除选项的索引,不会报错,只是静默失败
<select name="test" id="test"> <option>1</option> <option>2</option> <option>3</option> </select> <button id="btn">移除选项2</button> <script> btn.onclick = function(){ test.remove(1); } </script>
【3】将相应选项设置为null
[注意]该方法同样不会报错
<select name="test" id="test"> <option>1</option> <option>2</option> <option>3</option> </select> <button id="btn">移除选项2</button> <script> btn.onclick = function(){ test.options[1] = null; } </script>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】