Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/Jquery:基于单选框选择显示隐藏的div_Javascript_Jquery - Fatal编程技术网

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.length
    值保存在局部变量中,否则将在每次迭代时重新计算该值。同时将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.length
      值保存在局部变量中,否则将在每次迭代时重新计算该值。同时将radioBoxArray[j]保存在局部变量中(这也更有效)

      或者,您可以使用:

      试试这个:

      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)
      =>
      函数(i,cls)
      我必须更改为:$('.+cls+'Yes')。单击(函数(){你能解释一下这一点以及为什么它对我的代码有效吗?那么只需交换$.map w/$.each?@Matt你在架构上是对的,但我只是对
      $中的第一个索引参数感到恼火。每个
      处理函数-我们在这里不关心它。@user494901我们代码之间的区别在于我们如何使用闭包。你的
      点击
      手ler函数“记住”了
      j
      变量,实际上它的值将是每个单击处理程序中的
      radioBoxArray.length+1
      -请自己用
      控制台检查它。调试(j)
      -您会感到惊讶:)@在交换
      $时使用494901。将
      映射到
      $。每个
      都不要忘记向
      函数(cls)
      =>
      函数(i,cls)添加另一个参数
      @Maatt your edit rocks.我添加了“slow”来切换,得到了我想要的,谢谢!@Maatt your edit rocks.我添加了“slow”来切换,得到了我想要的,谢谢!所以将
      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");
         });
      });