使用选择性从选定内容中获取文本
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 的文本区域中获取选定的文本? [复制]
使用jQuery从下拉列表(选择框)中获取选定的ID [重复]