我有一个表,其中一列包含一个选择框。 我需要将侦听器绑定到任何select活动,以便根据哪个行的选择框已更改来更改表行的某些属性。所以很明显我没有选择框的修复ID。 以下是我尝试的代码,但它无法正常工作。未来可能会向表中添加更多行,因此需要实时监听器。
$('#datatable').on('change', '.MediaType select' function(){
console.log('Changed');
//console.log($(this.find('select :selected').text()));
});
这里MediaType是封闭的td元素的类。 'datatable'是我的表的id。 有人可以建议一个解决方案。
更正版本如下:
$('#datatable').on('change', '.MediaType select' function(){
console.log('Changed');
//Below line to get value of selected
console.log($(this, ':selected').val()));
});
答案 0 :(得分:1)
由于.MediaType是包含跨度的td,您希望将更改事件绑定到span而不是td
您可以删除,
$('#datatable').on('change', '.MediaType select'
获取所选值:
$(this).val();
答案 1 :(得分:0)
在尝试设置处理程序时,请确保#datatable
在DOM中:
$(function () { // DOM ready handler
$('#datatable').on('change', '.MediaType select', function () {
console.log('Changed');
});
});
如果datatable也是一个动态元素,请使用最近的静态容器作为委托目标,这里因为我不知道你的HTML,我正在使用文档对象:
$(document).on('change', '#datatable .MediaType select', function () {
console.log('Changed');
});