Jquery 如何在多选下拉列表中使用拆分



我正在尝试在多选下拉菜单上使用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/

最新更新