如何使用jquery显示基于无线电选择的2个或更多div?
问题已经解决,但如果你有一个更有效的解决方案,那么欢迎你。
我知道之前曾经问过这样的问题,但我无法让这个问题发挥作用。
我试图根据无线电选择显示几个div。 HTML是由wptheming option-framework
自动生成的,所以我无法改变它。 我可以改变的是我试图编写的jQuery函数,没有运气。
[这是我写的代码] [1]来测试我的想法,但它不起作用。
我再说一遍,我可以改变jQuery部分,但不能改变HTML。 我究竟做错了什么?
对于那些不想去jsfiddle的人是代码:
这是代码更正: @Zakary Kniebel
或者是基于 @Zakary Kniebel写的’FOR’的’ciclic’版本
实际上代码会这样做:
如果选择1,则仅显示1个部分,如果选择2,则仅显示2个部分,依此类推。
副作用,不需要但很好,在第一次选择后,无论你选择的数字,任何其他
//
之前这个:
$(".section").not("#section-how_many_custom_posts").hide();
或者记下选择器以查看不会消失的部分。
HTML
JS
jQuery(document).ready(function ($) { $types = $('.of-radio'); $types.change(function () { $(".section").not("#section-how_many_custom_posts").hide(); $this = $(this).val(); if ($this == "1") { $('#section-custom_posts_n1').show(); } else if ($this == "2") { $('#section-custom_posts_n1').show(); $('#section-custom_posts_n2').show(); } else if ($this == "3") { $('#section-custom_posts_n1').show(); $('#section-custom_posts_n2').show(); $('#section-custom_posts_n3').show(); } else if ($this == "4") { $('#section-custom_posts_n1').show(); $('#section-custom_posts_n2').show(); $('#section-custom_posts_n3').show(); $('#section-custom_posts_n4').show(); } else if ($this == "5") { $('#section-custom_posts_n1').show(); $('#section-custom_posts_n2').show(); $('#section-custom_posts_n3').show(); $('#section-custom_posts_n4').show(); $('#section-custom_posts_n5').show(); } });
});
CSS
.hidden { display:none }
你需要改变:
$types = $('#section-how_many_custom_posts');
至
$types = $('.of-radio');
这是因为,您的ID是唯一的,并且您没有将该ID应用于单选按钮。 您在所有单选按钮上都有公共类别of-radio
,因此您要做的是选择该类的所有元素,并根据单击该类的单选按钮显示所需的div
。
更新小提琴
UPDATE
基于您在代码中新发现的错误,我已经更新了您的小提示:
更新小提琴2
更新2
这不是您原来的问题,但在您的一条评论中,您提到过您希望尝试将代码转换为循环。 这是工作小提琴:
更新小提琴3