我有两个td的一个选择国家/地区选项和另一个输入文本。
<tr>
<td><select name="country" class='form-control country' id="country">
<option value="">-select country-</option>
<option value="usa">USA</option>
<option value="eng">England</option>
<option value="nzl">New Zealand</option>
</select></td>
<td><input type="text" class='form-control country_name'></td>
</tr>
<p id="ppl"></p>
这是小提琴https://jsfiddle.net/jvk3/wbzasubL/1/
根据国家/地区更改,我需要删除文本类并添加新类。 例如,我将country更改为usa我需要使用usa_country删除country_name的文本类,如果他将country更改为eng,则需要将country_name删除到eng_country
这是我的jquery代码。
$(".country").on('change', function(){
var cty_name = $(this).val();
$(this).next('td.country_name').removeClass('coutry_name')
.addClass(çty_name+'_counrty')
})
我尝试了很多方法,但没有成功。 谢谢你的帮助
答案 0 :(得分:0)
this
引用.country
.country_name
不是TD
元素的兄弟(您的选择器也是错误的),因此.next()
永远不会有效。
您可以使用.closest()
遍历祖先TD
元素,然后使用.next()
在兄弟INPUT
之后立即定位,然后使用.find()
定位{ {1}}元素。
$(this).closest('td').next('td').find('input').removeClass('coutry_name').addClass(çty_name+'_counrty');
OR,
如果您有单个输入,请前往TR
,然后使用.find()
$(this).closest('tr').find('input').removeClass('coutry_name').addClass(çty_name+'_counrty');