无法删除form-control中的类并添加新的类引导程序

时间:2017-04-01 19:10:33

标签: javascript jquery jquery-ui

我有两个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')
    })

我尝试了很多方法,但没有成功。 谢谢你的帮助

1 个答案:

答案 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');