給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, '/') #