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

时间:2018-09-23 12:53:56

标签: jquery

我有一个表,其第二列是一个下拉列表。我想抓住下拉菜单的价值。我现在遇到的问题是,如果用户选择第二行的下拉列表的值,我仍然会收到第一行的下拉列表的值。

这是我的代码:

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

    console.log("value is " + $('.dropdown_select').closest("tr").find("option:selected").val());
});

我的表是“ #orders”,下拉选择类名称是“ dropdown_select”。

任何人都可以告诉我我在做什么错。

2 个答案:

答案 0 :(得分:1)

我建议您将change事件绑定到selects,而不是表本身。这应该为您工作:

$('.dropdown_select').on('change', function () {
    console.log("value is " + $(this).find("option:selected").val());
    // In fact, it would be even better if you get the val with " $(this).val()" as suggested by sideroxylon
});

请记住下次提供HTML!

答案 1 :(得分:1)

您可以尝试以下方法:

$('#orders').on('change', '.dropdown_select' , function () {
     console.log("value is " + $(this).find(":selected").val());
});

这种方式的最大好处是,如果以后(动态)向表中添加新行,这仍然可以正常工作。


您可以try this online或对其进行更改并查看结果。


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

因为$(".dropdown_select").closest(...)返回所有.dropdown_select元素,并且当您在其上调用.closest(..)时,jQuery总是返回最接近第一项。