javascript - 选择所选元素的下一个

标签 javascript jquery html selector

我有下一个代码:

<tr>
  <td>
    <select class="select_big" name="additional_field" id="<?=$field['id'];?>" required>
      <option value="0">Выберите значение</option>
      ...
  </td>
</tr>
<tr>
  <td>
    <select class="select_big" name="additional_field" id="<?=$field['id'];?>" required>
      <option value="0">Выберите значение</option>
      ...
  </td>
</tr>
<tr>
  <td>
    <select class="select_big" name="additional_field" id="<?=$field['id'];?>" required>
      <option value="0">Выберите значение</option>
      ...
  </td>
</tr>
<tr>
  <td>
    <select class="select_big" name="additional_field" id="<?=$field['id'];?>" required>
      <option value="0">Выберите значение</option>
      ...
  </td>
</tr>

当我选择第二个“select”元素时,我需要禁用所有下一个。 如果我选择 1 需要禁用 3 和 4,如果我选择 2 我只需要禁用 4。 元素的数量可能不同。

我怎样才能得到选择旁边的所有元素?

我接下来试试:

<script type="text/javascript">
  $("[name=additional_field]").change(function(e) {
    field_data = '#' this.id.replace(/[* .]/g, "\\$&");
      $(field_data).parent().parent().nextAll().each(function(i) {
        console.log($(this)('[name=additional_field]'));
      });
  });
</script>

但我收到下一个错误: 未捕获的类型错误:对象不是函数

请帮帮我

最佳答案

我认为你可以做得更简单,而不会混淆父节点的遍历:

var $sel = $('.select_big').change(function() {
    $sel.filter(':gt(' + $sel.index(this) + ')').prop('disabled', +$(this).val());
});

演示:http://jsfiddle.net/VFcF9/

如果您选择返回默认选项,它也会重新启用选择框。

关于javascript - 选择所选元素的下一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921189/

相关文章:

javascript - Object.defineProperty 在构造函数中不执行任何操作

javascript - 客户端 HTML 表单验证

javascript - 使用 JavaScript 填充 HTML 中的 PDF 字段

javascript - 面对鼠标事件的问题

javascript - Vue.js 在数组中搜索关键字

javascript - 在 javascript 中使用反射来获取失败时测试函数的名称

jquery - 如何从 jQuery UI 选项卡内部打开链接

javascript - jQuery - 如何检查一个元素是否存在?

html - 使 div 占据上面同级的动态宽度,同时保持流量

javascript - 箭头键上的 div 交叉淡入淡出