我正在使用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);
});
我甚至没有收到警报。
检查元素显示,正确分配了类。
出了什么问题?
这里的问题不仅是动态绑定,还包括所选选项的值。所提供的解决方案似乎都不适用于此。因此问题。
答案 0 :(得分:1)
应该是 -
$(document).on('change','.medName',function(){
var val = $('option:selected',this).val()
alert(val);
});
因为.medName
是动态创建的