2

使用 jQuery,如何在给定元素 ID 之后找到某种类型的第一个出现的元素?所需的元素可能是也可能不是紧随其后的元素。

下面函数的目的是在单选按钮之后隐藏第一个出现的“选择”类型的元素。

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>
4

2 回答 2

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/

于 2013-06-03T15:20:25.120 回答
0

试试这个或在下面使用

var getNextTD = $('table.listview').nextAll('td').not('[class]').first();
于 2014-08-13T15:21:47.997 回答