使用jquery,获取具有特定类名的“下一个”文本框的最佳方法是什么

我在html页面上有一堆重复的文本框和combobox。 当我更改combobox时,我想更改combobox下面的文本框的值。 所以到目前为止我有这个代码:

$('.myDropdown').change(function () { var currentDropdownValue = $(this).val(); if (currentDropdownValue == "Regular") { //CHANGE TEXTBOX BELOW THIS COMBOBOX WITH CLASS = "QUANTITY" TO 10. } }); 

这是我的HTML

  Volvo Saab Mercedes Audi   

基本上,我需要弄清楚正确的选择器语法,因为我使用的是“Closest()”,但这似乎只是在DOM树上,而不是超过当前值。

您可以使用.next()返回下一个项目,或者如果您更挑剔则将其传递给选择器。

 $(this).next('.quantity').val(10); 

不需要像parent()那样额外的DOM遍历。

工作JSFiddle: http : //jsfiddle.net/CXzVe/2/ 。

你可以尝试next()

 $('.myDropdown').change(function () { var currentDropdownValue = $(this).val(); if (currentDropdownValue == "Regular") { //CHANGE TEXTBOX BELOW THIS COMBOBOX WITH CLASS = "QUANTITY" TO 10. $(this).next('.quantity').val('10'); } }); 

如果输入字段不是下拉列表的兄弟,则可能需要跳过HTML结构,例如$(this).parent().next('.quantity').val('10')

编辑:这里有一个jsFiddle给你。

如果您在初始加载页面后碰巧正在更​​新DOM,则需要使用$.live()$.delegate()因为jQuery不知道更改。

JavaScript的

 $(".manufacturer").live("change", function () { var currentValue = $(this).val(); if (currentValue && currentValue === "Regular") { $(".quantity").val("10"); } }); 

HTML