使用jquery获取表单元格中选定下拉列表的值

使用jquery获取表单元格中选定下拉列表的值,jquery,Jquery,我有一个表,它的第二列是下拉列表。我想获取下拉列表的值。我现在遇到的问题是,如果用户选择了第二行下拉列表的值,我仍然会收到第一行下拉列表的值 这是我的密码: $('#orders').on('change', function () { console.log("value is " + $('.dropdown_select').closest("tr").find("option:selected").val()); }); 我的表是“#orders”,我的下拉选择类名是“dro

我有一个表,它的第二列是下拉列表。我想获取下拉列表的值。我现在遇到的问题是,如果用户选择了第二行下拉列表的值,我仍然会收到第一行下拉列表的值

这是我的密码:

$('#orders').on('change', function () {

    console.log("value is " + $('.dropdown_select').closest("tr").find("option:selected").val());
});
我的表是“#orders”,我的下拉选择类名是“dropdown_select”


谁能告诉我我做错了什么

我建议您将更改事件绑定到selects,而不是表本身。这应该适合您:

$('.dropdown_select')。在('change',function(){
log(“值为”+$(this).find(“选项:已选择”).val();
//事实上,如果像sideroxylon建议的那样,使用“$(this).val()”来获取val,效果会更好
});您可以尝试以下方法:

$('#orders').on('change', '.dropdown_select' , function () {
     console.log("value is " + $(this).find(":selected").val());
});
这种方法的最大好处是,如果您稍后(动态)向表中添加新行,仍然可以正常工作。


你可以改变它,看看结果


为什么您的代码工作不正常??


因为
$(“.dropdown\u select”).closest(…)
返回所有
.dropdown\u select
元素,当您在其上调用
.closest(…)
时,
jQuery
总是返回第一项的最近值。

更改功能不应该应用于下拉选择器,而不是表吗<代码>$('.dropdown_select')。在('change',function(){console.log($(this.val())})上我在回答中添加了一个示例作为提琴。您现在可以在线查看结果:)感谢您抽出时间解释我的代码失败的原因。下次我一定会发布html。谢谢,不客气@bangbang。我很高兴问题解决了:)。请一定注意
大收益部分。另外,如果我的回答有帮助的话,你可以投票并接受这两个。谢谢,谢谢。好处部分当然非常有用,因为我正在动态添加行。另外,如果我想在用户选择下拉列表时获得第n列的值,我该怎么做?我一直在尝试这样做:lineTotal=table.row($(this.closest('tr').find('td:eq(7)).text());但是我得到一个类型错误(TypeError:table.row(…)。text不是函数)