拉菜單的屬性
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小時內與您取得聯系。