拉菜单的属性
length 表示选项<option>的个数
selected 布尔值,表示选项<option>是否被选中
SelectedIndex 被选中的选项序号,如果没有被选中则为-1,对于多选下拉菜单而言,返回被选中的第一个选项序号。从0开始计数
text 选项的文本(它是option专有的属性)
value 选项的value值
type 下拉菜单的类型。单选返回select-one,多选返回select-multiple
options 获取选项的数组,列如oSelectBox.options[2]表示下拉菜单oSelectBox中的第3项
访问选中项
下拉菜单(单选):
<html>
<head>
<title>下拉菜单,单选</title>
<style>
<!--
form{
padding:0px; margin:0px;
font:14px Arial;
}
-->
</style>
<script language="javascript">
function checkSingle(){
var oForm=document.forms["myForm1"];
var oSelectBox=oForm.constellation;
var iChoice=oSelectBox.selectedIndex; //获取选中项
alert("您选中了" + oSelectBox.options[iChoice].text); //下拉菜单,单选
}
</script>
</head>
<body>
<form method="post" name="myForm1">
<label for="constellation">星座:</label>
<p>
<select id="constellation" name="constellation">
<option value="Aries" selected="selected">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">双子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">狮子</option>
<option value="Virgo">处女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">双鱼</option>
</select>
</p>
<input type="button" onclick="checkSingle()" value="查看选项" />
</form>
</body>
</html>
下拉菜单(多选):
<html>
<head>
<title>下拉菜单,多选</title>
<style>
<!--
form{
padding:0px; margin:0px;
font:14px Arial;
}
p{
margin:0px; padding:2px;
}
-->
</style>
<script language="javascript">
function checkMultiple(){
var oForm=document.forms["myForm1"];
var oSelectBox=oForm.constellation;
var aChoices=new Array();
//遍历整个下拉菜单
for(var i=0;i<oSelectBox.options.length;i++)
if(oSelectBox.options[i].selected) //如果被选中
aChoices.push(oSelectBox.options[i].text); //压入到数组中,可以用于单选的情况;
alert("您选了:" + aChoices.join()); //输出结果
}
</script>
</head>
<body>
<form method="post" name="myForm1">
<label for="constellation">星座:</label>
<p>
<select id="constellation" name="constellation" multiple="multiple" style="height:180px;">
<option value="Aries">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">双子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">狮子</option>
<option value="Virgo">处女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">双鱼</option>
</select>
</p>
<input type="button" onclick="checkMultiple()" value="查看选项" />
</form>
</body>
</html>
通用的访问下拉菜单选中项的方法:
<script language="javascript">
function getSelectValue(Box){ //Box参数select标签的ID值
var oForm=document.forms["myForm1"];
var oSelectBox=oForm.elements[Box]; //根据参数相应的选择下拉菜单
if(oSelectBox.type=="select-one"){ //判断是单选还是多选
var iChoice=oSelectBox.selectedIndex; //获取选中项
alert("单选,您选中了" + oSelectBox.options[iChoice].text);
}else{
var aChoices=new Array();
//遍历整个下拉菜单
for(var i=0;i<oSelectBox.options.length;i++)
if(oSelectBox.options[i].selected) //如果被选中
aChoices.push(oSelectBox.options[i].text); //压入到数组中
alert("多选,您选了:" + aChoices.join()); //输出结果
}
}
</script>
函数使用方法:
<select id="constellation1" name="constellation1">
<option value="Aries" selected="selected">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">双子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">狮子</option>
<option value="Virgo">处女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">双鱼</option>
</select>
<input type="button" onclick="getSelectValue('constellation1')" value="查看选项" />
添加、替换、删除选项
通过构造函数Option()直接添加value、text等信息,相当方便
var oOption=new Option(text,value,defaultSelected,selected)
defaultSelected为布尔型值:1(true)设置下拉式表单默认值,
selected为布尔值:1(true)表示被选中
最后两项默认值为0,如果不希望添加的选项被默认选中则可以忽略,添加选项时通常将<select>列表的第length项直接设置为新的选项,即在末尾增加。
添加选项:
<html>
<head>
<title>添加选项</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function AddOption(Box){ //添加选项,参数为<select>标签的ID值
var oForm=document.forms["myForm1"];
var oBox=oForm.elements[Box];
var oOption=new Option("乒乓球","Pingpang");
oBox.options[oBox.options.length]=oOption; //在菜单末尾添加选项
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球类:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">篮球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="添加乒乓球" onclick="AddOption('ball');" />
</form>
</body>
</html>
替换选项
如果下拉菜单中的序号为已经存在了的选项,添加时则会自动替换原有的选项
oBox.options[iNum]=oOption;//替换iNum个选项
<html>
<head>
<title>替换选项</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function ReplaceOption(Box,iNum){ //替换选项,参数Box为<select>的ID值,iNum为替换的选项序号;
var oForm=document.forms["myForm1"];
var oBox=oForm.elements[Box];
var oOption=new Option("乒乓球","Pingpang");
oBox.options[iNum]=oOption; //替换第iNum个选项
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球类:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">篮球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="篮球替换为乒乓球" onclick="ReplaceOption('ball',1);" />
</form>
</body>
</html>
添加选项到具体位置
<html>
<head>
<title>添加到具体位置</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function AddOption(Box,iNum){
var oForm=document.forms["myForm1"];
var oBox=oForm.elements[Box];
var oOption=new Option("乒乓球","Pingpang");
oBox.insertBefore(oOption,oBox.options[iNum]);
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球类:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">篮球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="添加乒乓球" onclick="AddOption('ball',1);" />
</form>
</body>
</html>
以上代码IE7中虽然在正确的位置插入了选项,但内容却没有显示出来(bug问题)
兼容性更好的代码,使用方法与以上相同;
<script language="javascript">
function AddOption(Box,iNum){
var oForm=document.forms["myForm1"];
var oBox=oForm.elements[Box];
var oOption=new Option("乒乓球","Pingpang");
//兼容IE7,先添加选项到最后,再移动
oBox.options[oBox.options.length]=oOption;
oBox.insertBefore(oOption,oBox.options[iNum]);
}
</script>
注意:IE9已经解决了bug问题
删除下拉菜单的选项:
删除下拉菜单中的某个选项时相对最简单的,只需要将这个选项设置为null即可
bBox.options[iNum]=null;
avaweb
在我们日常的javaweb开发过程中呢,会经常遇到获取表单中的下拉菜单中的value以及他的text,下面我来教大家两种方法。(推荐第二种哈~,希望大家多多评论点赞呀,上一篇文章中,各位猿媛光想着收藏,都看不到你们给我写的评论,桑心~~)
假如我们的select长这样:
<select id="myselect">
<option value="1">test1</option>
<option value="2" selected="selected">test2</option>
<option value="3">test3</option>
</select>
第一种呢是用我们比较常见的JQuery
var $selected=$("#myselect option").filter(":selected");
获取文本: $selected.text();
获取value: $selected.val();
第二种呢当然是我们的原生js啦~~(推荐哟,收藏评论哈~)
var e=document.getElementById("myselect");
获取文本:var text=e.options[e.selectedIndex].text;
获取value: e.value;
我在后续的文章中,会分享更多更实用的开发小技巧给大家,希望大家多多关注!
猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想学习按键精灵的朋友可以添加金猪脚本粉丝交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
1.什么是网页元素特征字符串?
请参考网页特征字符串详解,
2.Html系列命令
2.1.HtmlSelect命令
1 HtmlSelect命令只能够根据Select项的值来进行选择,注意这里不是显示在Select项上的文字,而是该项的value。
一个典型的下拉框HTML代码如下:
<select name="city">
<option value="1">北京</option>
<option value="2">上海</option>
<option value="3">广州</option>
</select>
这里如果要选择上海,需要选择值为2的项;
2)级联的下拉列表组合。
在有的网页中,会有几个级联的下拉列表,后一个下拉框会随前一个框的值变化而发生变化,典型的有注册页面上的省份城市选择,HtmlSelect命令能够触发Onchange事件,会导致后一个下拉框值发生变化,但是如果执行脚本太快,而导致后一个未能选中正确的值,可以在前一个HtmlSelect后加上适当的延时;
3)多选表单中的列表控件;有的列表支持多选,在有一些个求职网站中,职业是可以多选的,这时候可以用%将多个需要选择的值连接起来传递给HtmlSelect命令实现多选;
2.2.HtmlExists命令
HtmlExists命令,能够判断指定特征的元素是否存在,并能够返回具备该特征的元素的个数。这个命令能够用来判断某个元素是否存在,如果为0证明不存在;
2.3.HtmlGet命令
HtmlGet命令比较复杂,但是功能也非常强大,该命令具备两个参数,第一个参数为获取类型,目前支持的值如下所示:
序号 值 适用对象
1 text 得到指定元素的文本值,对应DOM属性innerText
2 html 得到指定元素内部的HTML代码,对应DOM属性innerHTML
3 outerHtml 得到元素整体的HTML代码,对应DOM属性的outerHTML
4 value 得到元素的Value值,用于获取表单元素内部的值
5 src 得到图像元素的src属性,用于IMG标签对象
6 href 得到链接元素的链接地址,用于A标签
7 …其他名称 其他属性,如果您使用的是合法的属性名称,就能够返回对应的值。如何才是合法的属性?请参阅HTML标准。
第二个参数为特征字符串,如果匹配多个,只能返回第一个元素的值;
例如,获得淘宝货物价格:
Plugin price=Web.HtmlGet("text","id:id_Price")
获取某个表单文本的值
Plugin email=Web.HtmlGet("value","name:Email")
2.4.RunJS命令
RunJS命令提供了直接运行Javascript的功能,如果您对JS非常熟悉,就能够极大的扩展WQM的功能。
RunJS命令支持两中执行方式,第一个参数设置为0时,能够执行一段没有返回值的Javascript,
例如:
RunJS(0,"alert('hello');")
第一个参数设置为1时,能执行一段js并返回由return语句返回的值,返回值为字符串类型;
例如:返回Html文档的title;
RunJS(1,"var t=document.title;return t;")
如果您分析到网页中某个按钮实际上就是执行了一个函数,例如
<input type="Button" … />
您就可以直接调用
RunJS(0,"dosomething();")
JQuery的支持,网页按键精灵集成了Jquery1.3.2,为了不与其他JQ的库发生冲突,使用了wqmjq来代替$操作符,如果您需要直接使用JQ来操作网页,可使用wqmjq来执行Jquery语句:
*请认真填写需求信息,我们会在24小时内与您取得联系。