Jquery在Radio Select上显示Hide Div

时间:2015-11-05 18:25:39

标签: javascript jquery html

我有以下单选按钮。在页面加载时,我想隐藏所有有序列表。当我选择值为40的无线电时,我想显示list-group-1,当我选择值为50的无线电时,我想显示list-group-2,当我选择值为60的无线电时,我想显示list-group- 3。你怎么能用jquery做到这一点?

pip3.4

**编辑**

欣赏所有不同的解决方案,但为什么jquery toggle()方法不起作用?

最后这是我使用的:

<input type="radio" name="age" value="40">40
<input type="radio" name="age" value="50">50
<input type="radio" name="age" value="60">60



<ol class="list-group-1">
 <li class="line"></li>
<ol>

<ol class="list-group-2">
 <li class="line"></li>
</ol>

<ol class="list-group-3">
 <li class="line"></li>
</ol>

4 个答案:

答案 0 :(得分:0)

$(function() {
   $('ol').hide();
    var myListRef = {'40':'1','50':'2','60':3}
   $('[name="age"]').click(function() {
         $('.list-group-' + myListRef[$(this).val()]).show();
   });
});

答案 1 :(得分:0)

也许我的解决方案有点长一点,更容易理解发生了什么:http://jsfiddle.net/xrveLsc8/

CSS:

ol {
    display: none;
}

JS:

$(function() {
    $('input[name="age"]').click(function() {
        var lisGroup = null;

        switch (parseInt($(this).val())) {
            case 40:
                lisGroup = '.list-group-1';
                break;
            case 50:
                lisGroup = '.list-group-2';
                break;
            case 60:
                lisGroup = '.list-group-3';
                break;
        }

        $(lisGroup).show();
    });
});

答案 2 :(得分:0)

试试这个:

&#13;
&#13;
$("ol[class^='list-group-']").hide();
//$(".list-group-1").hide();
//$(".list-group-2").hide();
//$(".list-group-3").hide();

$("input[type=radio]").click(function() {
  switch(this.value){
    case '40':
      $(".list-group-1").show();
      $(".list-group-2").hide();
      $(".list-group-3").hide();
      break;
    case '50':
      $(".list-group-1").hide();
      $(".list-group-2").show();
      $(".list-group-3").hide();
      break;
    case '60':
      $(".list-group-1").hide();
      $(".list-group-2").hide();
      $(".list-group-3").show();
      break;
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="age" value="40">40
<input type="radio" name="age" value="50">50
<input type="radio" name="age" value="60">60



<ol class="list-group-1">
 <li class="line">test 1</li>
</ol>

<ol class="list-group-2">
 <li class="line">test 2</li>
</ol>

<ol class="list-group-3">
 <li class="line">test 3</li>
</ol>
&#13;
&#13;
&#13;

注意:您在评论中询问了在一个jQuery中选择所有<ol>元素的正确语法。正确的语法是$("ol[class^='list-group-']").hide();。我在上面的演示中使用它并注释掉了三个等效的行。

答案 3 :(得分:0)

由于inputol元素的位置在您的方案中相互对应,因此最简单最方便的方法是将index()用于input并使用相同的方法找到相应的ol

$('ol').hide(); // Hide all ol's initially
$('input:radio').click(function()
{
    $('ol').hide(); // Hides all ol's - remove if not needed
    $('ol').eq($(this).index()).show(); - finds the corresponding index of ol and shows it.
});

http://jsfiddle.net/f1sdptm4/1/

使用此功能,您可以添加任意数量的输入单选按钮组合,而无需重新访问脚本部分。