我正在尝试在多选下拉菜单上使用split,它返回的错误是:"未捕获的类型错误:对象f-all没有方法'拆分'"。 不能在多选上使用拆分吗?
这是下拉菜单(简化):
<select data-placeholder="Select" placeholder="Select" name="id[]" id="id_menu" multiple>
<option value=""></option>
<option value="e-all">E All</option>
<option value="f-all">F All</option>
</select>
这是拆分函数:
$('#id_menu').change(function(){
var id_menu = $(this).val();
var type = id_menu.split('-');
// do stuff with split id
});
尝试使用每个仍然相同的错误消息
$('#id_menu').change(function(){
$('#id_menu').each(function() {
var type = $(this).val().split(',');
});
});
提前谢谢。
$(function(){
$('select').change(function(){
//typeof $(this).val() === 'Array'
$.each($(this).val(), function(i, val){
console.log(val); //handle each selected value
});
});
});
由于使用多个属性,val
返回一个没有拆分方法的选定值数组,您可以使用join
方法将数组转换为字符串或遍历数组。
$('#id_menu').change(function(){
var id_menu = $(this).val().join();
// var id_menu = $(this).val();
// for (var i = 0; i < id_menu.length; i++) {
// var sin = id_menu[i].split('-');
// ..
// }
});
id_menu是一个数组
$('#id_menu').change(function() {
var id_menu = $(this).val();
//id_menu is an array
id_menu.forEach(function(item, index) {
var split_item = item.split('-');
});
});
要获取所选值,您还可以执行以下操作:
$('#id_menu').change(function (e) {
$(e.currentTarget).val();
});
这是一个演示:http://jsfiddle.net/7HVPH/