Javascript 如何在更改前获取所选单选按钮的值?

Javascript 如何在更改前获取所选单选按钮的值?,javascript,jquery,hide,slideshow,Javascript,Jquery,Hide,Slideshow,我有多个单选按钮共享相同的名称。其中一个旁边有一个隐藏的div 当选择了正确的单选按钮时,我想显示/隐藏它旁边的div“如果有” 这里有一个例子 第一台 第二台 第三台 第四台 收音机2旁边有一个隐藏的div。我想在选择收音机2时显示它。然后,当选择Radio 4时,我想隐藏Radio 2 div 这就是我所做的 $(function(){ function getGroupElement(value) { return '#group_' + value.re

我有多个单选按钮共享相同的名称。其中一个旁边有一个隐藏的div

当选择了正确的单选按钮时,我想显示/隐藏它旁边的div“如果有”

这里有一个例子

第一台 第二台 第三台 第四台

收音机2旁边有一个隐藏的div。我想在选择收音机2时显示它。然后,当选择Radio 4时,我想隐藏Radio 2 div

这就是我所做的

$(function(){

    function getGroupElement(value)
    {
        return '#group_' + value.replace(':', '_');
    }




  var previous;   

    $("input[type='radio']").click(function(e) {
        // Store the current value on focus and on change
        previous = $(this).val();

        console.log('Current:' + previous);

    }).change(function(e) {

        var previousGroupId = getGroupElement(previous);

        var newGroupName = $(this).data('show-group');

        //Hide the previous Group
        $(previousGroupId).hide();

        if ( ! newGroupName){
            return;
        }

        $(newGroupName).show();

    });

});
上面的“我的代码”无效,因为“上一个”已设置为下一个选定项

如何隐藏/显示正确的框

如果需要,这里是我的HTML

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <fieldset class="survey-control-fieldset">
        <div class="survey-control-title">
            Select a store
        </div>
        <div class="radio">
            <label for="item_529"><input checked id="item_529" name=
            "control_111" type="radio" value="112:529"> None</label>
        </div>
        <div class="radio">
            <label for="item_530"><input id="item_530" name="control_111" type=
            "radio" value="112:530"> Don't Know/No Answer</label>
        </div>
        <div class="radio">
            <label for="item_532"><input data-show-group="group_112_532" id=
            "item_532" name="control_111" type="radio" value="112:532">
            Other</label>
            <div id="group_112_532" style="display: none;">
                <div class="form-group">
                    <label for="control_113">Specify Other Store Name</label>
                    <input class="form-control" id="control_113" name=
                    "control_113" placeholder="" type="text" value="">
                </div>
            </div>
        </div>
        <div class="radio">
            <label for="item_531"><input id="item_531" name="control_111" type=
            "radio" value="112:531"> Refused</label>
        </div>
    </fieldset>
</body>
</html>

选择一家商店
没有一个
不知道/没有答案
其他
指定其他存储名称
拒绝

隐藏收音机旁边的所有div,然后显示所选收音机旁边的div

$(":radio").next("div").hide();
$(this).next("div").show();

隐藏收音机旁边的所有div,然后显示选定收音机旁边的div

$(":radio").next("div").hide();
$(this).next("div").show();

如果为每个隐藏的div指定了相同的类名,则可以在显示新div之前将其全部隐藏:

$('.hidden-divs').not(newGroupName).hide();
$(newGroupName).show();

如果为每个隐藏的div指定了相同的类名,则可以在显示新div之前将其全部隐藏:

$('.hidden-divs').not(newGroupName).hide();
$(newGroupName).show();

请显示HTML而不是描述它。为什么需要
previous
变量?只需隐藏所有div,并显示所选按钮旁边的div。@Barmar我怎么知道要隐藏的div id?我添加了我的HTML请显示你的HTML而不是描述它。为什么你需要
previous
变量?只需隐藏所有div,并显示所选按钮旁边的div。@Barmar我怎么知道要隐藏的div id?我加了我的HTMLTANK给你。我从上面的评论中采纳了你的建议。我所有的div都有相同的类名。隐藏全部,然后显示当前一个谢谢。我从上面的评论中采纳了你的建议。我所有的div都有相同的类名。隐藏全部,然后显示当前一个