嘿所有人都在寻找所有的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。任何建议表示赞赏
答案 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
在这里查看each和toggle文档