1. 程式人生 > >給select控制元件在指定位置插入option(javascript)

給select控制元件在指定位置插入option(javascript)

問題描述

      對於select控制元件 1 2 3,我們可以通過它的options.add(new Option(v,t))的方法動態的插入一個option選項,但是新增的option的位置只能在最後,卻不能插入到指定的任意位置。

解決方法
      既然select的options屬性提供的方法無法實現上面的需求,那麼只好找辦法了。我們知道html控制元件都有一個insertBefore的方法,用以在指定位置插入子控制元件,這個方法也許可以使用,不妨測試一下,呵呵,真的可以。不過對於IE和firefox,還是有細節的差別。

瀏覽器相容


    對於FireFox,我們可以直接使用 selectCtl.insertBefore(new Option('value', 'text'), selectCtl.options[i]);這樣的簡單的形式在制定位置插入option,但是IE好像不行,需要使用下面的形式才可以 

               var option = document.createElement("option");

                option.value = 'value';

                option.innerText = 'text';


                selectCtl.insertBefore(option, selectCtl.options[i]);


完整程式碼(firefox3.01,IE7測試通過)

 function addAt(selectCtl,optionValue,optionText,position)


{

   var userAgent = window.navigator.userAgent;

   if (userAgent.indexOf("MSIE") > 0) {
                var option = document.createElement("option");
                option.value = optionValue;
                option.innerText = optionText;
                selectCtl.insertBefore(option, selectCtl.options[position]);
            }
            else
                selectCtl.insertBefore(new Option(optionValue, optionText), selectCtl.options[position]);

}


更好的方法

   上面使用增加一個新的javascript函式來解決問題, 我們還可以通過javascript中的prototype屬性來完成,這樣就可以給select控制元件增加一個新的擴充套件方法addOptionAt,使用 selectCtl.addOptionAt(new Option('v','t'),position)這種簡潔的方式來程式設計了,我還沒有寫,所以不能給出程式碼了。

相關推薦

select控制元件指定位置插入option(javascript)

問題描述       對於select控制元件 1 2 3,我們可以通過它的options.add(new Option(v,t))的方法動態的插入一個option選項,但是新增的option的位置只能在最後,卻不能插入到指定的任意位置。 解決方法      既然select

Jquery設定select控制元件指定text的值為選中項

<select name="streetid" id="streetid"> <option value="4">北環路</option> <option value="5">天河路</option>

IE8中select控制元件中的option顯示不全解決方案

 select控制元件,若option的內容過長,則IE8中顯示不全,導致其內容無法顯示出來。  目前測試IE9、IE11 select控制元件都沒有問題。 其中select,可以只針對個別的select,只要替換相應的class即可。  解決方案:

html select控制元件移動到option標籤時就觸發mouseleave()解決方法

今天在做select標籤滑鼠移出時就自動隱藏的功能,在谷歌下面除錯沒問題,但是到火狐上除錯時發現滑鼠下移到option標籤時就會觸發mouseleave方法,百度了之後找到問題的方法,就是在mouseleave方法中加入一個事件物件,通過判斷滑鼠移動到的物件是否為null或undefin

iview的select控制元件新增預設值

html部分: <template> <div> 清單型別 <Select v-model="model1" style="width:150px" @on-change="listTypeChange"> <O

通過ajax動態載入select控制元件【下拉框】的option

一、JS方式 關鍵程式碼: <select id="ddlResourceType" onchange="getvalue(this)"></select> var objSelect = document.getElementById("ddlR

duilib中獲取的控制元件位置或者大小不對的可能的原因

duilib初學者可能總會有這樣的疑問:為什麼我獲取的控制元件位置或者大小和我想象中的不一樣? 位置不一樣可能的原因: 1.xml中直接配置的位置和實際顯示之後的位置確實是不一樣的.xml中設定的位置(相對或絕對)都是基於他的父控制元件左上角.而實際顯示之後獲取的位置,是基於整個客戶區的

詳解C語言在字串的指定位置插入字元

問題分析 在字串S的所有數字字元前加一個$字元,可以有兩種實現方法。方法一:用串S拷貝出另一個串T,對串T從頭至尾掃描,對非數字字元原樣寫入串S,對於數字字元先寫一個$符號再寫該數字字元,最後,在S串尾加結束標誌。使用此方法是犧牲空間,贏得時間。方法二:對串S從頭至尾掃描,當遇到數字字元時,從該字元至串

mysql欄位指定位置插入字串

update  security_user set birthday=  CONCAT(left(birthday,4),'-',right(birthday,LENGTH(birthday)-4))  where LENGTH(birthday)=8 ; updat

easyUI日期控制元件增加清空按鈕

var buttons = $.extend([], $.fn.datebox.defaults.buttons);     buttons.splice(1, 0, {         text: '清空',    

使用js動態篩選select控制元件中符合條件的選項

有這樣一個需求,就是在jsp的下拉選單的旁邊有一個搜尋框,在下拉選單中選項較多時可以採用搜尋框來迅速找到相應的內容。 實現方法:          1.在搜尋框中輸入內容。         &nbs

Android在程式碼中修改控制元件位置

//這裡我用FrameLayout佈局為列,其他佈局設定方法一樣,只需改變佈局名就行 FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) photoView.getLayoutParams(); //

一個控制元件新增一個旋轉動畫

// 均勻旋轉動畫 private RotateAnimation rotateAnimation; rotateAnimation = (RotateAnimation) AnimationUtils.loadAnimation(getContext(), R.anim.rotating

JS 在陣列指定位置插入/刪除資料的方法

splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。 語法: arrayObject.splice(index,howmany,item1,.....,itemX) 引數說明 引數 描述

基於jquery的可查詢多級select控制元件(可記錄歷史選擇)

;(function($,window,document){ var pluginName = 'multiSelect', defaults = { type: '1',//select層級onetwo data:[], field:[],//資料欄位名

javascript控制在游標位置插入文字

<span style="font-size:18px;"><html> <head> <script type='text/javas

android 在java程式碼中動態設定控制元件位置和設定片大小

需要動態改變佈局裡面控制元件的相對位置 如: 1.改變RelativeLayout佈局裡面某個控制元件的layout_toLeftOf 的屬性 RelativeLayout.Layoutparams params = (RelativeLayout.LayoutParams)view

android 控制控制元件位置和大小

方法一: Android的介面佈局可以用兩種方法,一種是在xml中佈局,一種是和JAVA中Swing一樣在JAVA程式碼中實現Ui介面的佈局,用xml的佈局管理器佈局是很方便的,但是在一些程式碼中需要動態的顯示介面,這個時候xml就缺少了一種靈活性,使用XML和JAVA

android 開發零起步學習筆記(九):android 控制控制元件位置和大小及Layout相關屬性

1、 ? 1 2 3 4 5 6 7 8 9 10 11 LinearLayout.LayoutParams p = newLinearLayout.LayoutParams(      

python中在字串的指定位置插入一個字元

# 在字串的自定位置插入字元 # 因為python中str是不可變的變數,所以藉助list來完成 str_i = "20081231" list_i = list(i) # str -> list print(list_i) list_i.insert(4, '/') #