我使用select2来获取选中框中的值,但我的问题是,我只想获得选中框中的第一项--忽略逗号分隔的项,如下所示:
$(function() {
$('.select2').select2({
theme: "classic",
}).on('change', function(e) {
var dataselected = $.map($(".select2 option:selected"), function(el, i) {
return $(el).text();
});
});
});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<select class="form-control select2" multiple="multiple">
<option value="donut" id="first">donut-milk</option>
<option value="orange" id="first">orange-milk</option>
</select>
这将产生以下结果:
["donut-milk","orange-milk"]如何实现此输出:
["donut","orange"]发布于 2019-03-15 06:12:50
当您将文本从"-“拆分并获得第0元素时,您可以做的就是。这意味着在拆分之后,就有了一个数组。
举个例子:
var dataselected = $.map($(".select2 option:selected"),function (el, i){
var elemText = $(el).text().split('-')[0]; //like this
return elemText;
});发布于 2019-03-15 05:57:28
您必须返回值而不是文本内容,使用val()方法或使用value属性来获取值。
var dataselected = $.map($(".select2 option:selected"),function (el, i){
return $(el).val();
});
$(function() {
$('.select2').select2({
theme: "classic",
}).on('change', function(e) {
var dataselected = $.map($(".select2 option:selected"), function(el, i) {
return $(el).val();
});
console.log(dataselected);
});
});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<select class="form-control select2" multiple="multiple">
<option value="donut" id="first">donut-milk</option>
<option value="orange" id="first">orange-milk</option>
</select>
或
var dataselected = $.map($(".select2 option:selected"),function (el, i){
return el.value;
});
$(function() {
$('.select2').select2({
theme: "classic",
}).on('change', function(e) {
var dataselected = $.map($(".select2 option:selected"), function(el, i) {
return el.value;
});
console.log(dataselected);
});
});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<select class="form-control select2" multiple="multiple">
<option value="donut" id="first">donut-milk</option>
<option value="orange" id="first">orange-milk</option>
</select>
或者简单地从select标记中获取值。
var dataselected = $(".select2").val()根据 method:
当集合中的第一个元素是select-multiple (即具有多个属性集的select元素)时,.val()返回一个数组,其中包含每个选定选项的值。
FYI : id在上下文中应该是唯一的,因此避免使用重复的id。
UPDATE :如果您想从文本内容中提取第一部分(在-之前),那么您可以使用String#split方法这样做。
var dataselected = $.map($(".select2 option:selected"), function(el, i) {
return $(el).text().split('-')[0];
// or
// return $(el).text().split('-').shift();
});
$(function() {
$('.select2').select2({
theme: "classic",
}).on('change', function(e) {
var dataselected = $.map($(".select2 option:selected"), function(el, i) {
return $(el).text().split('-')[0];
// or
// return $(el).text().split('-').shift();
});
console.log(dataselected);
});
});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<select class="form-control select2" multiple="multiple">
<option value="donut" id="first">donut-milk</option>
<option value="orange" id="first">orange-milk</option>
</select>
https://stackoverflow.com/questions/55176374
复制相似问题