使用类名获取select on change的值

时间:2015-04-01 11:03:43

标签: jquery

我正在使用jQuery在表的每一行中添加select。 选择被分配了一个类名。

现在,我需要使用这个动态分配的类名来获取select on change的值。

$select = $('<select class="medName"></select>');

for(var i = 0;i < tmp.length-1; i++){
                $option = $('<option>'+tmp[i]+'</option>');
                $select.append($option);
}

这里tmp包含从后端获取的数据。

最后,

    var $row = $('<tr></tr>');
    var $data1 = $('<td></td>');
    var $data2 = $('<td></td>');
    var $data3 = $('<td></td>');
    var $data4 = $('<td></td>');

    //alert($select.html());

    $data1.append($select);
    $data2.append($type);
    $data3.append($text);
    $data4.append($label);

    $row.append($data1);
    $row.append($data2);
    $row.append($data3);
    $row.append($data4);

    $row.insertAfter('#CashMemoBody');

这完全没问题。

现在,当我这样做时,

$('.medName').on('change', function (e) {
        var val = $(this).find('option :selected').html();
        alert(val);
});

我甚至没有收到警报。

检查元素显示,正确分配了类。

出了什么问题?

这里的问题不仅是动态绑定,还包括所选选项的值。所提供的解决方案似乎都不适用于此。因此问题。

1 个答案:

答案 0 :(得分:1)

应该是 -

$(document).on('change','.medName',function(){
  var val = $('option:selected',this).val()
  alert(val);
});

因为.medName是动态创建的