1. 程式人生 > >jquery 對select中的option操作(轉的)

jquery 對select中的option操作(轉的)

uery的功能很強大,下面介紹Jquery操作表單Select元素的用法:

jQuery獲取Select元素,並選擇的Text和Value:

1. $("#select_id").change(function(){//code...}); //為Select新增事件,當選擇其中一項時觸發
2. var checkText=$("#select_id").find("option:selected").text(); //獲取Select選擇的Text
3. var checkValue=$("#select_id").val(); //獲取Select選擇的Value
4. var checkIndex=$("#select_id ").get(0).selectedIndex; //獲取Select選擇的索引值
5. var maxIndex=$("#select_id option:last").attr("index"); //獲取Select最大的索引值

jQuery獲取Select元素,並設定的 Text和Value:
例項分析:
1. $("#select_id ").get(0).selectedIndex=1; //設定Select索引值為1的項選中
2. $("#select_id ").val(4); // 設定Select的Value值為4的項選中
3. $("#select_id option[text='jQuery']").attr("selected", true); //設定Select的Text值為jQuery的項選中

jQuery新增/刪除Select元素的Option項:
例項分析:
1. $("#select_id").append("<option value='Value'>Text</option>"); //為Select追加一個Option(下拉項)
2. $("#select_id").prepend("<option value='0'>請選擇</option>"); //為Select插入一個Option(第一個位置)
3. $("#select_id option:last").remove(); //刪除Select中索引值最大Option(最後一個)
4. $("#select_id option[index='0']").remove(); //刪除Select中索引值為0的Option(第一個)
5. $("#select_id option[value='3']").remove(); //刪除Select中Value='3'的Option
6. $("#select_id option[text='4']").remove(); //刪除Select中Text='4'的Option


三級分類 <select name="thirdLevel" id="thirdLevel"
onchange="getFourthLevel()">
<option value="0" id="thirdOption">
請選擇三級分類
</option>
</select>
</div>

四級分類:
<select name="fourthLevelId" id="fourthLevelId">
<option value="0" id="fourthOption">
請選擇四級分類
</option>
</select>

</div>

.if($("#thirdLevel").val()!=0){
$("#thirdLevel option[value!=0]").remove();
}
if($("#fourthLevelId").val()!=0){
$("#fourthLevelId option[value!=0]").remove();
}//這個表示:假如我們希望當選擇選擇第三類時:如果第四類中有資料則刪除,如果沒有資料第四類的商品中的為預設值。在後面學習了AJAX技術後經常會使用到!

---------------------------------------------------------------------------------
javascript操作Select標記中options集合
先來看看options集合的這幾個方法:
options.add(option)方法向集合裡新增一項option物件;
options.remove(index)方法移除options集合中的指定項;
options(index)或options.item(index)可以通過索引獲取options集合的指定項;

javascript程式碼如下:

var selectTag = null; //select標記
var OPTONLENGTH = 10; //每次填充option數
var colls = []; //對select標記options的引用

window.onload = function(){
selectTag = document.getElementById("SelectBox"); //獲取select標記
colls = selectTag.options; //獲取引用
//initSelectBox(); //自初始化select.options
};

//使用隨機數填充select.options
function initSelectBox(){
var random = 0 ;
var optionItem = null;
var item = null;

if(colls.length > 0 && isClearOption()){
clearOptions(colls);
}

for(var i=0;i<OPTONLENGTH;i++){

random = Math.floor(Math.random()*9000)+1000;
item = new Option(random,random); //通過Option()建構函式建立option物件
selectTag.options.add(item); //新增到options集合中
}

watchState();
}
//新增新option項前是否清空當前options
function isClearOption(){
return document.getElementById("chkClear").checked;
}
//清空options集合
function clearOptions(colls){
var length = colls.length;
for(var i=length-1;i>=0;i--){
colls.remove(i);
}
}
//新增一項新option
function addOption(){
colls.add(createOption());
lastOptionOnFocus(colls.length-1);
watchState();
}
//建立一個option物件
function createOption(){
var random = Math.floor(Math.random()*9000)+1000;
return new Option(random,random);
}
//刪除options集合中指定的一項option
function removeOption(index){
if(index >= 0){
colls.remove(index);
lastOptionOnFocus(colls.length-1);
}
watchState();
}
//獲取當前選定的option索引
function getSelectedIndex(){
return selectTag.selectedIndex;
}
//獲取options集合的總數
function getOptionLength(){
return colls.length;
}
//獲取當前選定的option文字
function getCurrentOptionValue(index){
if(index >= 0)
return colls(index).value;
}
//獲取當前選定的option值
function getCurrentOptionText(index){
if(index >= 0)
return colls(index).text;
}
//使用options集合中最後一項獲取焦點
function lastOptionOnFocus(index){
selectTag.selectedIndex = index;
}
//顯示當select標記狀態
function watchState(){
var divWatch = document.getElementById("divWatch");
var innerHtml="";
innerHtml = "option總數:" + getOptionLength();
innerHtml += "<br/>當前項索引:" + getSelectedIndex();
innerHtml += "<br/>當前項文字:" + getCurrentOptionText(getSelectedIndex());
innerHtml += "<br/>當前項值:" + getCurrentOptionValue(getSelectedIndex());
divWatch.innerHTML = innerHtml;
divWatch.align = "justify";
}

注意到上面建立option項時,使用了Option()建構函式,這個建構函式有兩個版本的過載。
1、var option = new Option(text,value); //這裡要大寫Option()
2、var option = new Option();
option.text = text;
option.value=value;
我個人比較喜歡第一種方法來建立option物件。
另外,select標記還有一個比較有用的屬性就是selectedIndex,通過它可能獲取當前選擇的option索引,或通過索引設定指定options集合中哪一項被選擇。
select.selctedIndex = select.options.length-1; //將options集合中最後一項選中
var selectedItem = select.options(select.selectedIndex);//獲取當前選中項
selectedItem.text; //選中項的文字
selectedItem.value; //選中項的值

<BODY>
<Select name="SelectBox">
</Select>
<hr/>
<div id="divWatch" style="background-color:beige;width=220;">
</div>
<hr/>
<h4>使用隨機數初始化SelectBox</h4>
<input type="button" value="Init" onclick="initSelectBox()"/> <input type="checkbox" name="chkClear"/>clear
<hr/>
<h4>新增option項</h4>
<input type="button" value="create" onclick="addOption()"/>
<hr/>
<h4>刪除option項</h4>
<input type="button" value="delete" onclick="removeOption(colls.length-1)"/>
</BODY>
檢測是否有選中
if(objSelect.selectedIndex > -1) {
//說明選中
} else {
//說明沒有選中
}

刪除被選中的項
objSelect.options[objSelect.selectedIndex] = null;

增加項
objSelect.options[objSelect.length] = new Option("你好","hello");

修改所選擇中的項
objSelect.options[objSelect.selectedIndex] = new Option("你好","hello");

得到所選擇項的文字
objSelect.options[objSelect.selectedIndex].text;