Js操做Select是很常見的,也是比較實用的,每一次操做select的時候,老是要出來翻一下資料,不如本身總結一下,之後就翻這裏了。jquery
一.js操做select部分app
判斷select選項中 是否存在Value="paraValue"的Item
向select選項中 加入一個Item
從select選項中 刪除一個Item
刪除select中選中的項
修改select選項中 value="paraValue"的text爲"paraText"
設置select中text="paraText"的第一個Item爲選中
設置select中value="paraValue"的Item爲選中
獲得select的當前選中項的value
獲得select的當前選中項的text
獲得select的當前選中項的Index
清空select的項 spa
// 1.判斷select選項中 是否存在Value="paraValue"的Item function jsSelectIsExitItem(objSelect, objItemValue) { var isExit = false; for (var i = 0; i < objSelect.options.length; i++) { if (objSelect.options[i].value == objItemValue) { isExit = true; break; } } return isExit; } // 2.向select選項中 加入一個Item function jsAddItemToSelect(objSelect, objItemText, objItemValue) { //判斷是否存在 if (jsSelectIsExitItem(objSelect, objItemValue)) { alert("該Item的Value值已經存在"); } else { var varItem = new Option(objItemText, objItemValue); objSelect.options.add(varItem); alert("成功加入"); } } // 3.從select選項中 刪除一個Item function jsRemoveItemFromSelect(objSelect, objItemValue) { //判斷是否存在 if (jsSelectIsExitItem(objSelect, objItemValue)) { for (var i = 0; i < objSelect.options.length; i++) { if (objSelect.options[i].value == objItemValue) { objSelect.options.remove(i); break; } } alert("成功刪除"); } else { alert("該select中 不存在該項"); } } // 4.刪除select中選中的項 function jsRemoveSelectedItemFromSelect(objSelect) { var length = objSelect.options.length - 1; for(var i = length; i >= 0; i--){ if(objSelect[i].selected == true){ objSelect.options[i] = null; } } } // 5.修改select選項中 value="paraValue"的text爲"paraText" function jsUpdateItemToSelect(objSelect, objItemText, objItemValue) { //判斷是否存在 if (jsSelectIsExitItem(objSelect, objItemValue)) { for (var i = 0; i < objSelect.options.length; i++) { if (objSelect.options[i].value == objItemValue) { objSelect.options[i].text = objItemText; break; } } alert("成功修改"); } else { alert("該select中 不存在該項"); } } // 6.設置select中text="paraText"的第一個Item爲選中 function jsSelectItemByValue(objSelect, objItemText) { //判斷是否存在 var isExit = false; for (var i = 0; i < objSelect.options.length; i++) { if (objSelect.options[i].text == objItemText) { objSelect.options[i].selected = true; isExit = true; break; } } //Show出結果 if (isExit) { alert("成功選中"); } else { alert("該select中 不存在該項"); } } // 7.設置select中value="paraValue"的Item爲選中 document.all.objSelect.value = objItemValue; // 8.獲得select的當前選中項的value var currSelectValue = document.all.objSelect.value; // 9.獲得select的當前選中項的text var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text; // 10.獲得select的當前選中項的Index var currSelectIndex = document.all.objSelect.selectedIndex; // 11.清空select的項 document.all.objSelect.options.length = 0;
二.jQuery操做select.net
好比<select class="selector"></select>
一、設置value爲pxx的項選中
$(".selector").val("pxx");
二、設置text爲pxx的項選中
$(".selector").find("option[text='pxx']").attr("selected",true);
這裏有一箇中括號的用法,中括號裏的等號的前面是屬性名稱,不用加引號。不少時候,中括號的運用可使得邏輯變得很簡單。
三、獲取當前選中項的value
$(".selector").val();
四、獲取當前選中項的text
$(".selector").find("option:selected").text();
這裏用到了冒號,掌握它的用法並觸類旁通也會讓代碼變得簡潔。
不少時候用到select的級聯,即第二個select的值隨着第一個select選中的值變化。這在jquery中是很是簡單的。
如: code
$(".selector1").change(function(){ // 先清空第二個 $(".selector2").empty(); // 實際的應用中,這裏的option通常都是用循環生成多個了 var option = $("<option>").val(1).text("pxx"); $(".selector2").append(option); });
本文轉載自其餘地方,歡迎轉載,可是請註明來源。有些地方不對的歡迎一塊兒討論htm
轉載:http://www.jb51.net/article/42523.htmblog