Javascript 如何将下拉选择值分配给下一个td中存在的输入字段?

Javascript 如何将下拉选择值分配给下一个td中存在的输入字段?,javascript,jquery,Javascript,Jquery,在一个表中,我有两列和许多行。一列具有下拉列表,另一列具有类型编号的输入字段。当我更改下拉列表的值时,我想将所选值分配给输入字段,该字段出现在nexttd中。我希望我能很好地解释我的问题 这是我尝试过的 $(文档).ready(函数(){ $('select.nameSelect').change(函数(){ var id=$(this).children(“选项:已选定”).val(); $(this).closest('.tr').find('.StudentId').val(id); }

在一个表中,我有两列和许多行。一列具有下拉列表,另一列具有类型编号的输入字段。当我更改下拉列表的值时,我想将所选值分配给输入字段,该字段出现在next
td
中。我希望我能很好地解释我的问题

这是我尝试过的

$(文档).ready(函数(){
$('select.nameSelect').change(函数(){
var id=$(this).children(“选项:已选定”).val();
$(this).closest('.tr').find('.StudentId').val(id);
});
});

学生1
学生2
学生3
学生4
学生1
学生2
学生3
学生4
学生1
学生2
学生3
学生4

首先,您的HTML无效,因为有多个元素具有相同的
id
id=“StudentName”

但是代码不起作用的原因是,当它应该是
最近('.tr')
时,您正在执行
最近('.tr')
,因为它是一个元素,而不是一个类

此外,不需要找到选定的值。。。只需使用
this.value

$(文档).ready(函数(){
$('select.nameSelect').change(函数(){
$(this.closest('tr').find('.StudentId').val(this.value);
});
});

学生1
学生2
学生3
学生4
学生1
学生2
学生3
学生4
学生1
学生2
学生3
学生4

请注意,ID对于文档必须是唯一的。看起来您的代码应该可以工作(假设控制台中没有语法错误),这只是一个输入错误;将
.closest('.tr')
更改为
.closest('tr')
小点:
$(此)。子项(“选项:已选”).val()
可以替换为
$(此)。val()
-a
选择
自动接受当前所选
选项的值。您不应该在多个下拉列表中重复
id=“StudentName”
。ID应该是唯一的……否则它们有什么意义呢?@ADyson-即使出现这种情况,当
这个.value
会起作用时same@freefaller是的,我只是坚持jQuery语法以保持一致性,但我同意,谢谢@freefiller。这对我有用。同一个id是复制粘贴错误。