javascript - 使用map jquery获取数组中的选项值
问题描述
$('#btnadd').click(addBulletinBoard);
function addBulletinBoard() {
var show = $('#show').val();
var show1;
console.log("before " + $('#show').val())
if (jQuery.inArray("*", show) !== -1) {
show1 = $("select#show option").map(function() {
return $(this).val();
}).get();
}
console.log("after :" + show)
console.log("after " + show1.splice(0, 2))
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" name="show" id="show" multiple="">
<option value="" selected="" disabled="">Select...</option>
<option value="*">All</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
<button type="button" class="btn btn-primary" id="btnadd">Submit</button>
我上面有一个演示。我想要发生的事情是从选择中选择选项并且该选项ALL
在所选中。我想获得除第一个和第二个之外的所有选项。所以我使用了带有拼接的地图。但正如在控制台中看到的那样,这不是我所期望的。
如何在jquery中获取除前两个之外的选项值
解决方案
可以简单地使用Array#filter()
$('#btnadd').click(addBulletinBoard);
function addBulletinBoard() {
var show = $('#show').val().filter(function(val) {
return val && val !== '*'
});
console.log("after :", show)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" name="show" id="show" multiple="">
<option value="" selected="" disabled="">Select...</option>
<option value="*">All</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
<button type="button" class="btn btn-primary" id="btnadd">Submit</button>
推荐阅读
- stm32 - 如何将 I-CUBE-LRWAN 库添加到新项目?
- c - 如何从 Swift 中调用名称与结构一致的 C 函数?
- node.js - npx foo –“找不到命令:foo”
- python - 如何强制 Python 附加到某人当前打开的 csv 文件?
- java - 如何从 OpenJDK 8 中提取和安装 Java 8 202 JRE
- html - 为什么不显示正确的行数
- c# - 未能创建迁移。EF Core 工具比某些版本旧
- html - CoreUI 侧边菜单浮动在主菜单上
- javascript - 使用 JavaScript 向 url 添加参数
- sql - 如何使用 INSERT INTO SELECT 和 NOT EXISTS 避免重复的主键值