2015-02-12 59 views
1

我一直在使用Selectize API並在確定如何獲取當前選定項目的索引/位置方面苦苦掙扎。獲取選擇的當前索引選擇api下拉

我已經看了API並找到getValue()來獲取所選項目的值,但我需要索引。我也調查了.selectize選項本身,但似乎無法找到存儲它的任何屬性?

回答

3

使用API​​,你可以使用:

var selectize = $('#ddowhat').selectize()[0].selectize; 

var val = selectize.getValue(); 
var tag = selectize.getItem(selectize.getValue()); 
var text = tag.text(); 

如果你有多個選項,標籤將是一個數組。

0

我對此有不同的看法 - 搜索後找不到答案。

我用jQuery來獲取頁面上的所有選擇。然後我通過每個循環(所以我可以單獨更改每個項目的css值)。

  1. var htmlSelects = $('select');
  2. htmlSelects.each(函數(I){....}
  3. 我選擇對象的父節點之前我selectized它: VAR parentDIV = $(本).closest('DIV 「).prop(」身份證');
  4. 然後我‘selectized’選擇對象(捕捉原始的z-index的,所以我可以改變它的下拉菜單打開,恢復收盤價), 變量$選擇= _input.selectize({{create:true, sortField:'text' }], onDr opdownOpen:function(){ var cssZIndex = $('#'+ parentDIV).css('zIndex'); $('#'+ parentDIV).attr('cssZIndex',cssZIndex); $('#'+ parentDIV).css('zIndex','1000'); ('#'+ parentDIV).css('zIndex',$('#'+ parentDIV).attr('cssZIndex'));這個函數返回一個數組。 } });
  5. 我用 「部分類匹配」 和parentDIV得到selectized下拉對象: 變種ELEM = $( 「[類^ = 'selectize-下拉']」, 「#」 + parentDIV)[0 ]。
  6. 我創建了selectized選擇這讓我得到的對象的textContent屬性(它包含所有的「選項」爲selectized選擇(用換行符分隔) $(ELEM click事件行動)。在( '點擊', '.selectize-下拉內容的div',函數(){

    //GET THE textContent OPTION LIST VALUE, 
    //REPLACE THE NEWLINES OR RETURNS WITH A PIPE 
    var optionString = $(elem)[0].textContent.replace(/[\n\r]/g, '|'); 
    
    //CREATE AN ARRAY OF OPTIONS VALUES 
    var optionArray = optionString.split('|'); 
    
    //GET THE TEXT VALUE OF THE OPTION CLICKED ON 
    //(AGAIN REPLACE THE NEWLINES OR RETURNS WITH AN EMPTY STRING 
    var optionText = $(this).text().replace(/[\n\r]/g, ''); 
    
    //GET THE INDEX OF THE SELECTED OPTION TEXT VALUE 
    //IN THE OPTIONS LIST ARRAY 
    var optionIndex = $.inArray(optionText, optionArray); 
    })