jQuery在JSFiddle中工作但在本地RoR环境中不起作用?

目前我有两个JavaScript函数。 “全部检查”function在JSFiddle和本地环境(http://0.0.0.0:3000)中都能很好地工作。 但是,“选择动物”或仅选择表单中特定选项的函数仅适用于JSFiddle,但不适用于本地环境。 我想知道是什么导致了这个问题。

以下是我的“_form.html.erb”中的代码:

      checked = false; function checkedAll () { if (checked == false){checked = true}else{checked = false} for (var i = 0; i < document.getElementById('myform').elements.length; i++) { document.getElementById('myform').elements[i].checked = checked; } }   
Foo1 Bar2 Rah3 Check all:
function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); }

1 2 3 4 5 CheckAnimal

编辑:

我已将代码更改为以下内容:

     checked = false; function checkedAll () { if (checked == false){checked = true}else{checked = false} for (var i = 0; i < document.getElementById('myform').elements.length; i++) { document.getElementById('myform').elements[i].checked = checked; } }   function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); }   
Foo1 Bar2 Rah3 Check all:

1 2 3 4 5 CheckAnimal

并且“全部检查”function运行良好,“检查动物”仍然不起作用:/

第二次编辑:

我也试过去除jquery.min.js周围的头部潮汐和表格周围的身体标签,它给出了相同的结果。 检查所有工作和检查动物没有。

第三次编辑:

阅读你们的建议后修改了代码。 不幸的是,它仍然无法正常工作..非常有趣!

     checked = false; function checkedAll () { if (checked == false){checked = true}else{checked = false} for (var i = 0; i < document.getElementById('myform').elements.length; i++) { document.getElementById('myform').elements[i].checked = checked; } }   $(function() { function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); } });    
Foo1 Bar2 Rah3 Check all:

1 2 3 4 5 CheckAnimal

编辑4:

在Firebug显示“Check Animal”未定义之后,我删除了$(function() {围绕“Check Animal”function。现在新的错误是:

 TypeError: $(...).find is not a function ...lue=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox... 

新的“检查动物”代码简单地反转回原始代码:

  function checkAnimal() { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", true); }  

试试这个:

 $(function() { function checkAnimal () { var values = ['1', '2', '4', '5']; $("#list").find('[value=' + values.join('], [value=') + ']').prop("checked", $("#checkAnimalCheckbox").prop("checked")); } }); 

我找到了解决方案!

非常感谢你的帮助。 没有你,我不会想到这一点。

解决方案是将代码中的“$”更改为函数“checkAnimal”的“jQuery”,如下所示:

  

大家节日快乐!