Jquery 获取不一定是兄弟的下一个元素&;没课

Jquery 获取不一定是兄弟的下一个元素&;没课,jquery,Jquery,使用jQuery,如何找到给定元素ID之后某个类型的第一个出现的元素?所需元素可能是也可能不是紧随其后的元素 下面函数的目的是隐藏单选按钮后第一个出现的“select”类型元素 function showDropDown(radioButtonElem) { if(document.getElementById(radioButtonElem.id).checked) { /*$(Get next <select> element after radioBut

使用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>
功能显示下拉列表(radioButtonElem){
if(document.getElementById(radioButtonElem.id).checked){
/*$(在radioButtonElem.id之后获取下一个元素)*/
}
}
...
我对“next()”函数的理解是,它只查找相同类型的元素。我可能错了;如果我是,请解释如何使用它来解决我的问题

编辑: 谢谢大家的反馈。根据你的意见,我认为这会奏效,但事实并非如此。我错过了什么

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

功能显示下拉列表(radioButtonElem)
{
如果(无线电按钮已选中)
{
$(RadioButtonnelem).nextAll('select').first().css('display','none');
}
}

如果所需元素是同级元素,但不一定是紧随其后的同级元素,则可以使用
.nextAll()
后跟
.first()

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

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

$(':radio').on('click', showDropDown);
请参见下面的尝试或使用

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

如果select不是兄弟姐妹,那么您是正确的,而.next不是您需要的。这个问题以前被问过很多次,但是在很多不同的情况下使用它,所以可能很难找到一个与您的情况相匹配的问题。您提供的样本显示select是兄弟姐妹,您说不是,因此我们很难为您找到一个副本。为什么要执行
document.getElementById(radioButtonElem.id).checked而不是
radioButtonElem.checked
?这似乎有点多余。你的意思是“不一定是下面的兄弟姐妹”,也就是说,它将是兄弟姐妹,但可能有中间的元素。选择一个选择器,这样如果它是紧随其后的兄弟姐妹,您就可以执行
.next('select')
。@而且YB不,这正是问题所在-
。next()
只考虑下一个兄弟姐妹,可以选择进行筛选。要查看以下所有兄弟姐妹,您需要
.nextAll
var getNextTD = $('table.listview').nextAll('td').not('[class]').first();