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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用选择性从选定内容中获取文本相关的知识,希望对你有一定的参考价值。

我试过这个:

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 + "<br />");
      $(".log").append("Text:" +$("#select option:selected").text() + "<br />");
					,
					dropdownParent: 'body'
				);
);
<link rel="stylesheet" type="text/css" href="https://selectize.github.io/selectize.js/css/styles.css">
<link rel="stylesheet" type="text/css" href="https://selectize.github.io/selectize.js/css/selectize.default.css">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="https://selectize.github.io/selectize.js/js/selectize.js"></script>


<select id="select" class="control-form" data-placeholder="Select a person...">
<option value="">None</option>
<option value="4">Thomas Edison</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select>
<div class="log"></div>
另一答案

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

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();
              );
        
 
另一答案

简单地使用$('select[class*="selectize"] option')为我工作。我使用*=因为我经常在元素上使用多个类(more on jQuery selectors/wildcards at w3schools.com)。否则,如果使用id或name,我将分别使用$('select[id="selectize-id"] option')$('select[name="selectize-name"] option')

然后,为了获得选项值,我添加了.text()并获得我在.val()上添加的选项键。

如果我有一个国家/地区列表,而“美国”是当前选定的值,其中“美国”是当前可查看的文本,我会执行以下操作:

  • $('select[class*="selectize"] option').val()返回“美国”
  • $('select[class*="selectize"] option').text()返回“美国”

可能的选择

简单地使用基本的id选择器 - 就像在$('#selectize-id option')中 - 没有用。但是,使用基本类选择器 - 如$('.selectize-class option') - 似乎确实有效(more on attribute selectors on w3schools.com)。也许有人可以评论这两者之间的区别($('#someId) vs $('element[id="someId"]'))。

另一答案
  • 检索所选值:selectize_obj.getValue()
  • 检索所选文本:$(selectize_obj.getItem(value)).html()

以上是关于使用选择性从选定内容中获取文本的主要内容,如果未能解决你的问题,请参考以下文章

获取除不可选择元素之外的选定文本

如何从 jquery 的文本区域中获取选定的文本? [复制]

从 uiwebview Xcode 中获取选定的文本

使用jQuery从下拉列表(选择框)中获取选定的ID [重复]

如何使用 Javascript 获取选定文本中的所有 HTML 选择标签?

如何从 UITextView 获取选定的文本框