使用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