Rails Uncaught ReferenceError:$$未定义升级到jquery

时间:2012-08-28 14:19:42

标签: javascript jquery ruby-on-rails

嘿所有人都在寻找所有的stackoverflow,这看起来像一个常见的错误,我只是无法绕过我的脑袋。我正忙着将我们的网站从纯JS升级到jquery,为我们准备移动到Rails 3.1现在我有这个javascript:

 :javascript
   ["Ownership", "Management", "EmploymentEquity", "SkillsDevelopment", "PreferentialProcurement", "EnterpriseDevelopment", "SocioeconomicDevelopment"].each(function(element) {
     $$('.' + element).each(function(s) {
       s.toggle();
     });
 });

所以基本上它通过一系列css类运行,然后切换它们。现在,当我使用jQuery lib运行时,我得到一个看起来像这样的错误

Uncaught TypeError: Object Ownership,Management,EmploymentEquity,SkillsDevelopment,PreferentialProcurement,EnterpriseDevelopment,SocioeconomicDevelopment has no method 'each' 

现在我只想尝试一次测试一个元素以使jQuery工作至少这是我到目前为止所做的。

$("OwnershipHeader").click(function () {
$("Ownership").toggle("slow");
});

非常简单,所以当你点击标题时,它会切换它的孩子。所以,当我在控制台中输入它时,它的工作正常。直到我点击粗略的标题:

Uncaught ReferenceError: $$ is not defined

这看起来非常简单,但每次都打破...我对jQuery相对较新,我刚刚使用过Jquery UI lib。任何建议表示赞赏

3 个答案:

答案 0 :(得分:1)

  

Uncaught TypeError:对象所有权,管理,就业平等,技能发展,优惠采购,企业发展,社会经济发展没有方法'每个'

我认为你的意思是forEach。但由于这在所有浏览器中都不起作用,请使用jQuery的each function

$.each(["Ownership", "Management"], function(i, element) {...
  

未捕获的ReferenceError:未定义$$

jQuery使用单个美元符号($

$("OwnershipHeader").click(function () {
  $("Ownership").toggle("slow");
});

jQuery selectors大多数都是CSS选择器。所以这应该有效:

$(".OwnershipHeader").click(function () {
  $(".Ownership").toggle("slow");
});

答案 1 :(得分:0)

试试这个。

var array = ["Ownership", "Management", "EmploymentEquity", "SkillsDevelopment", "PreferentialProcurement", "EnterpriseDevelopment", "SocioeconomicDevelopment"];

$.each(array, function(i,element) {
    $('.' + element).toggle();
});

它看起来像以前用PrototypeJS编码,它提供$$[].each

我不确定.toggle在PrototypeJS和jQuery中的行为是否相同。

答案 2 :(得分:0)

var col = ["Ownership", "Management", "EmploymentEquity", "SkillsDevelopment", "PreferentialProcurement", "EnterpriseDevelopment", "SocioeconomicDevelopment"];
$.each(col,function(i,e){
  $('.'+e).each(function(j,s){
    $(s).toggle();
  });
})

*在jquery中,首先没有将变量定义为$$,只定义了$
*其次,每个函数都按照我的提及使用,传递给每个函数的第一个变量是index in array,第二个变量是实际的element 在这里查看eachtoggle文档