使用选择性从选定内容中获取文本

我试过这个:

var eventHandler = function() { return function() { console.log($select.val()); }; }; var $select = $('.selectize').selectize({ create : true, onChange : eventHandler() }); 

这让我了解所选选项的价值,但我需要文本。 我这样做的时候:

 console.log($select.val().text()); 

我收到一个错误。 我尝试过其他事情无济于事。 如何获取所选文本?

select_option.getItem(select_option.getValue())[0].innerHTML; select_option = $select_option[0].selectize; 获取指定下拉选项的文本值。

this.getItem(value)[0].innerHTML获取当前下拉选项的文本值

最简单的方法是使用onChange事件并从所选选项中获取文本

JS:

 $(function(){ $('#select').selectize({ create: true, sortField: { field: 'text', direction: 'asc' }, onChange:function(value){ $(".log").append("Value:" + value + "
"); $(".log").append("Text:" +$("#select option:selected").text() + "
"); }, dropdownParent: 'body' }); });
      

您可以使用此行获取文本:

 ddlcontrol[0].selectize.getItem(ddlcontrol[0].selectize.getValue()).text(); 

ddlcontrol来自哪里:

 var ddlcontrol = $('#ddCountry').selectize({ valueField: 'id', labelField: 'name', searchField:['name'] }); 

希望这对你有用!。

所以我得到了它的工作。 这是该死的kludgey,必须有一个更好的方法。 有一个方法getValue()但是没有相应的getText()方法。

 var eventHandler = function() { return function() { var something = selectizeControl.getItem(selectizeControl.getValue()); console.log(something.text()); }; }; var $select = $('.selectize').selectize({ create : true, onChange : eventHandler() }); var selectizeControl = $select[0].selectize 

这个东西可以通过原型添加:

 Selectize.prototype.getText = function () { return this.getItem(this.getValue()).text(); }; 

如果有人需要方法setText (如相应的方法setValue ),可以这样添加:

 Selectize.prototype.setText = function (text) { var selectize = this; $.each(this.options, function (propertyName, propertyValue) { if (propertyValue[selectize.settings.labelField] === text) { selectize.setValue(propertyName); return false; } }); }; 

您可以通过以下方式获取所选文

 $('select').selectize({ onInitialize: function (selectize) { selectize.on('change', function (value) { var item = this.$input[0]; var selected_text = $(item.selectize.getItem(value)[0]).text(); }); } }