使用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>
答案 0 :(得分:1)
如果必需元素是兄弟,而不一定是紧跟兄弟,则可以使用.nextAll()
后跟.first()
$(this).nextAll('select').first()
另外 - 你有jQuery - 你也应该将它用于事件处理:
function showDropDown(ev) {
if (this.checked) {
$(this).nextAll('select').first().hide();
}
}
$(':radio').on('click', showDropDown);
答案 1 :(得分:0)
尝试this或使用下面的
var getNextTD = $('table.listview').nextAll('td').not('[class]').first();