Javascript/Jquery:基于单选框选择显示隐藏的div
我正在做的是构建一个表单,当你选择一个答案时,会弹出一堆新问题 这是我的工作代码:Javascript/Jquery:基于单选框选择显示隐藏的div,javascript,jquery,Javascript,Jquery,我正在做的是构建一个表单,当你选择一个答案时,会弹出一堆新问题 这是我的工作代码: $(".appliedWorked").click(function(){ if($(this).val()==="appliedWorkedYes") $(".appliedWorkedYesHide").show("fast"); else $(".appliedWorkedYesHide").hide("fast"); }); 它只适用于一个班级。我想对很多类都这
$(".appliedWorked").click(function(){
if($(this).val()==="appliedWorkedYes")
$(".appliedWorkedYesHide").show("fast");
else
$(".appliedWorkedYesHide").hide("fast");
});
它只适用于一个班级。我想对很多类都这样做,所以我想我应该把它放到一个数组中
这是我的许多课程的代码,但当我在广播框中点击yes时,它不会显示出来:
// storing an array of radio boxe class names
var radioBoxArray = new Array(
"appliedWorkedYes",
"workStudyYes",
"workHistoryYes",
"workWeekEndsYes",
"cprYes",
"aedYes",
"aidYes",
"wsiYes",
"gaurdYes"
);
// looping over the radio box array, too use the show feature of jquery
for(var j = 0; j < radioBoxArray.length; j++){
// class name
$("."+radioBoxArray[j]).click(function(){
// value box
if($(this).val()==='"+radioBoxArray[j]+"')
// show method
$("."+radioBoxArray[j]+"Hide").show("fast");
// hide else
else $("."+radioBoxArray[j]+"Hide").hide("fast");
});
}
请帮忙
我尝试了以下操作,但单击框时不会显示:
if($(this).val()=== radioBoxArray[j])
if($(this).val()=== String( radioBoxArray[j] ))
if($(this).val()==='"'+radioBoxArray[j]+'"')
试一试
或
希望有帮助
试一试
或
希望这有助于将其更改为:
if($(this).val()=='“'+radioBoxArray[j]+'”)
将其更改为:
如果($(this).val()=='“'+radioBoxArray[j]+'”)
请查看问题中突出显示的语法。在
if($(this).val()==='"+radioBoxArray[j]+"')
该测试的右侧就是字符串“+radioBoxArray[j]+”
。删除所有这些引用
if($(this).val() === radioBoxArray[j])
其他清理:
- 使用数组文字表示法声明数组:
var radioBoxArray = [ "appliedWorkedYes", "workStudyYes", "workHistoryYes", "workWeekEndsYes", "cprYes", "aedYes", "aidYes", "wsiYes", "gaurdYes"];
- 将
值保存在局部变量中,否则将在每次迭代时重新计算该值。同时将radioBoxArray[j]保存在局部变量中(这也更有效) 或者,您可以使用:radioBoxArray.length
请看问题中突出显示的语法。在
该测试的右侧就是字符串if($(this).val()==='"+radioBoxArray[j]+"')
。删除所有这些引用“+radioBoxArray[j]+”
其他清理:if($(this).val() === radioBoxArray[j])
- 使用数组文字表示法声明数组:
var radioBoxArray = [ "appliedWorkedYes", "workStudyYes", "workHistoryYes", "workWeekEndsYes", "cprYes", "aedYes", "aidYes", "wsiYes", "gaurdYes"];
- 将
值保存在局部变量中,否则将在每次迭代时重新计算该值。同时将radioBoxArray[j]保存在局部变量中(这也更有效) 或者,您可以使用: 试试这个:radioBoxArray.length
希望有帮助 试试这个:var radioBoxArray = [ "appliedWorked", "workStudy", "workHistory", "workWeekEnds", "cpr", "aed", "aid", "wsi", "gaurd" ]; $.map(radioBoxArray, function(cls) { $('.' + cls).click(function() { // value box if($(this).val()===cls + 'Yes') // show method $("."+cls+"YesHide").show("fast"); // hide else else $("."+cls+"YesHide").hide("fast"); }); });
var radioBoxArray = [ "appliedWorked", "workStudy", "workHistory", "workWeekEnds", "cpr", "aed", "aid", "wsi", "gaurd" ]; $.map(radioBoxArray, function(cls) { $('.' + cls).click(function() { // value box if($(this).val()===cls + 'Yes') // show method $("."+cls+"YesHide").show("fast"); // hide else else $("."+cls+"YesHide").hide("fast"); }); });
希望有帮助 你为什么不使用
而不是$(this.val()===radioBoxArray[j]
当你键入$(this.val()==='“+radioBoxArray[j]+”)
为什么不使用警报($(this.val()===radioBoxArray[j])时得到的信息
而不是$(this.val()===radioBoxArray[j]
键入$(this.val()==='“+radioBoxArray[j]+”)
警报($(this.val()===radioBoxArray[j])时得到的结果代码>我必须更改为:$('.+cls+'Yes')。单击(函数(){你能解释一下这一点以及为什么它对我的代码有效吗?那么只需交换$.map w/$.each?@Matt你在架构上是对的,但我只是对
$中的第一个索引参数感到恼火。每个
处理函数-我们在这里不关心它。@user494901我们代码之间的区别在于我们如何使用闭包。你的
点击
手ler函数“记住”了
变量,实际上它的值将是每个单击处理程序中的j
-请自己用radioBoxArray.length+1
-您会感到惊讶:)@在交换控制台检查它。调试(j)
映射到$时使用494901。将
都不要忘记向$。每个
=>函数(cls)
我必须更改为:$('.+cls+'Yes')。单击(函数(){你能解释一下这一点以及为什么它对我的代码有效吗?那么只需交换$.map w/$.each?@Matt你在架构上是对的,但我只是对函数(i,cls)
$中的第一个索引参数感到恼火。每个
处理函数-我们在这里不关心它。@user494901我们代码之间的区别在于我们如何使用闭包。你的
点击
手ler函数“记住”了
变量,实际上它的值将是每个单击处理程序中的j
-请自己用radioBoxArray.length+1
-您会感到惊讶:)@在交换控制台检查它。调试(j)
$时使用494901。将
映射到
$。每个
都不要忘记向
=>函数(cls)
@Maatt your edit rocks.我添加了“slow”来切换,得到了我想要的,谢谢!@Maatt your edit rocks.我添加了“slow”来切换,得到了我想要的,谢谢!所以将函数(i,cls)添加另一个参数
更改为radioBoxArray[j]
。因此将字符串(radioBoxArray[j])绝对没有意义
更改为radioBoxArray[j]
绝对没有意义。String(radioBoxArray[j])
var radioBoxArray = [ "appliedWorkedYes", "workStudyYes", "workHistoryYes", "workWeekEndsYes", "cprYes", "aedYes", "aidYes", "wsiYes", "gaurdYes" ], len = radioBoxArray.length, radio; for (var j = 0; j < len; j++) { radio = radioBoxArray[j]; // class name $("." + radio).click(function() { $("." + radio + "Hide").toggle($(this).val() === radio); }); }
var radioBoxArray = [ "appliedWorkedYes", "workStudyYes", "workHistoryYes", "workWeekEndsYes", "cprYes", "aedYes", "aidYes", "wsiYes", "gaurdYes" ]; $.each(radioBoxArray, function(i, v) { $("." + v).click(function() { $("." + v+ "Hide").toggle($(this).val() === v); }); });
var radioBoxArray = [ "appliedWorked", "workStudy", "workHistory", "workWeekEnds", "cpr", "aed", "aid", "wsi", "gaurd" ]; $.map(radioBoxArray, function(cls) { $('.' + cls).click(function() { // value box if($(this).val()===cls + 'Yes') // show method $("."+cls+"YesHide").show("fast"); // hide else else $("."+cls+"YesHide").hide("fast"); }); });
- 使用数组文字表示法声明数组: