Javascript 使用jquery,获取;“下一步”;具有特定类名的文本框

Javascript 使用jquery,获取;“下一步”;具有特定类名的文本框,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我在html页面上有一堆重复的文本框和组合框。当我更改组合框时,我想更改组合框下方文本框的值。到目前为止,我有以下代码: $('.myDropdown').change(function () { var currentDropdownValue = $(this).val(); if (currentDropdownValue == "Regular") { //CHANGE TEXTBOX BELOW THIS COMBOBOX WITH CLASS =

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

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

<select class="myDropdown">
 <option value="volvo">Volvo</option>
 <option value="saab">Saab</option>
 <option value="mercedes">Mercedes</option>
 <option value="audi">Audi</option>
</select>

<input class="quantity" type="text" />

沃尔沃汽车
萨博
梅赛德斯
奥迪
基本上,当我使用“Closest()”时,我需要找出正确的选择器语法,但这似乎只会在DOM树上出现,而不会超过当前值。

如果您比较挑剔,可以使用返回下一项或传递选择器

$(this).next('.quantity').val(10);
不需要像parent()之类的额外DOM遍历

正在使用JSFIDLE:。

您可以尝试:

如果您的输入字段不是下拉列表的同级字段,例如
$(this).parent().next('.quantity').val('10')
,则可能需要在HTML结构上跳一跳


编辑:这是给你的。如果你在页面初始加载后碰巧更新了DOM,你需要使用
$.live()
$.delegate()
,因为jQuery没有意识到更改

JavaScript

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


沃尔沃汽车
萨博
梅赛德斯
奥迪
$(".manufacturer").live("change", function () {
    var currentValue = $(this).val(); 
    if (currentValue && currentValue === "Regular") {
         $(".quantity").val("10");
    }
});
<select class="manufacturer">
 <option value="volvo">Volvo</option>
 <option value="saab">Saab</option>
 <option value="mercedes">Mercedes</option>
 <option value="audi">Audi</option>
</select>

<input class="quantity" type="text" />