2015-02-12 76 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); 
    })