这是我的JavaScript代码,它给了我一些奇怪的错误:
$(".jchart div").each({
$(this).css({
'height': jBarHeight
});
});
此代码在Uncaught SyntaxError: Unexpected token (
行
$(this).css({
我也试过这个:
$(".jchart").find("div").each({
$(this).css({
'height': jBarHeight
});
});
但它给了我同样的错误,可能是什么问题!?
另请注意:
jBarHeight
是我未发布的代码中其他位置的已定义变量,我删除了大量代码以减少问题大小。
答案 0 :(得分:10)
你的语法错了。 .each()
采用回调函数,而不是对象。
试试这个:
$(".jchart").find("div").each(function() {
$(this).css({
'height': jBarHeight
});
});
答案 1 :(得分:1)
我认为您已经向它解释了为什么您的.each()
调用无效(它需要回调函数作为参数)。
但是,事实证明,这里根本不需要.each()
。你可以这样做:
$(".jchart div").height(jBarHeight);
并且,jQuery将迭代集合中的所有元素并在其上调用.height()
。如果您想使用.css()
,则可以执行此操作:
$(".jchart div").css("height", jBarHeight);
或
$(".jchart div").css({height: jBarHeight});
所有这些都比进行自己的.each()
迭代更简单,并利用大多数jQuery方法对jQuery集合应用一些更改将自动迭代整个集合。
答案 2 :(得分:0)
我怀疑你想要第一行阅读:
$(".jchart div").each(function(){
如果没有function()
,您宣布的是对象字面值,而不是函数,因此(
中的$(this)
是非法的。