jQuery单选按钮显示/隐藏

时间:2013-02-05 15:51:04

标签: jquery

我正在尝试使用单选按钮来显示和隐藏div,但无法让下面的内容工作,任何帮助都会很棒?

    $('input:radio[name="option"]').click(function() {
    if ( $(this).val() == "pop" ) {
        $(this).parent().next('.wrapper').show();
    } else {
        $(this).parent().next('.wrapper').hide();
    }
});

<input name="option" type="radio">
<input name="option" type="radio" value="pop">

<div class="wrapper">text</div>

3 个答案:

答案 0 :(得分:3)

删除parent(),因为.wrapper元素与输入处于同一级别。

您还需要nextAll,而不是next,因为next仅选择紧随其后的嘶嘶声。

工作代码:

$('input:radio[name="option"]').click(function() {
    var $this = $(this);
    if ( $this.val() == "pop" ) {
        $this.nextAll('.wrapper').show();
    } else {
        $this.nextAll('.wrapper').hide();
    }
});

Demonstration

如果您只想要第一个.wrapper元素,那么您可以使用:

$('input:radio[name="option"]').click(function() {
    var $this = $(this), $wrapper = $this.nextAll('.wrapper').eq(0);
    if ( $this.val() == "pop" ) {
        $wrapper.show();
    } else {
        $wrapper.hide();
    }
});

答案 1 :(得分:0)

你的.parent().next('wrapper').无法抓住(没有这样的元素)。

这将有效

$('.wrapper').show();

答案 2 :(得分:0)

试试这个:

$(document).ready(function(){  
    $("input[value='pop']").on("click", function() {
        $(".wrapper").toggle();
    });
});
相关问题