获得下一个不一定是兄弟姐妹的元素。没课

时间:2013-06-03 15:11:18

标签: jquery

使用jQuery,如何在给定的元素ID之后找到特定类型的第一个元素?所需元素可能是或可能不是紧接其后的元素。

下面这个函数的目的是隐藏单选按钮后第一个出现的'select'类型的元素。

function showDropDown(radioButtonElem) {
    if(document.getElementById(radioButtonElem.id).checked) {
        /*$(Get next <select> element after radioButtonElem.id).css("display", "none");*/
    }
}

<input type="radio" name="radioButtonGroup" value="sfn" id="sfn" onclick="showDropDown(this);">
<select id="myDropDown">...</select>

我对'next()'函数的理解是它只找到相同类型的元素。我可能错了;如果我,请解释如何使用它来解决我的问题。

编辑: 感谢您的反馈。根据您的输入,我认为这会起作用,但事实并非如此。我错过了什么?

<script>
  function showDropDown(radioButtonElem)
    {
      if(radioButtonElem.checked)
    {
      $(radioButtonElem).nextAll('select').first().css('display', 'none');
    }
  }
</script>

2 个答案:

答案 0 :(得分:1)

如果必需元素是兄弟,而不一定是紧跟兄弟,则可以使用.nextAll()后跟.first()

$(this).nextAll('select').first()

另外 - 你有jQuery - 你也应该将它用于事件处理:

function showDropDown(ev) {
    if (this.checked) {
        $(this).nextAll('select').first().hide();
    }
}

$(':radio').on('click', showDropDown);

请参阅http://jsfiddle.net/alnitak/RsrwV/

答案 1 :(得分:0)

尝试this或使用下面的

var getNextTD = $('table.listview').nextAll('td').not('[class]').first();