2014-03-28 36 views
0

这是我的JavaScript代码,并把它送给我一些奇怪的错误:传递一个对象的jQuery。每()(而不是函数)会导致错误

$(".jchart div").each({ 
     $(this).css({ 
     'height': jBarHeight 
     }); 
    }); 

此代码给我的错误:Uncaught SyntaxError: Unexpected token (上线$(this).css({

我也试过这样:

$(".jchart").find("div").each({ 
     $(this).css({ 
     'height': jBarHeight 
     }); 
    }); 

但它使我有同样确切的错误,可能是什么问题!?

另请注意: jBarHeight是在我没有发布的代码中的其他地方定义的变量,我剪出了很多代码以减少问题的大小。

+3

'。每个()'需要一个功能作为它的参数,而不是一个对象。 – jfriend00

+0

注:这是给你的是错误的原因是因为它试图使用'$(本)的.css({'作为对象的领域 –

+1

@jsve是啊,对不起,反复做同样的事情后,我猜。我的大脑只是想去做“的一小段路”,这也是错误的方式。 – user3314062

回答

10

您的语法错误。 .each()需要一个回调函数,而不是一个对象。

试试这个:

$(".jchart").find("div").each(function() { 
    $(this).css({ 
     'height': jBarHeight 
    }); 
}); 
+0

噢噢噢,我觉得像这样的白痴现在,由于一吨! – user3314062

+0

这是一件好事,让别人检查你的代码,经过一段时间遍地做同样的事情。 – user3314062

0

我怀疑你想要的第一行改为:

$(".jchart div").each(function(){ 

没有function()您声明对象文本,而不是一个功能,所以在($(this)是非法的。

1

我想你已经有了它向你解释为什么你.each()电话没有工作(它需要一个回调函数作为参数)。

但是,事实证明,没有必要.each()这里的。你可以这样做:

$(".jchart div").height(jBarHeight); 

而且,jQuery将遍历集合中的所有元素,并呼吁他们.height()。如果你想使用.css()相反,你可以这样做:

$(".jchart div").css("height", jBarHeight); 

$(".jchart div").css({height: jBarHeight}); 

所有这些都是比做自己.each()迭代简单,走的事实,即大多数jQuery方法是对jQuery集合应用一些更改会自动为您迭代整个集合。

+0

其实,'。每个()'确实有使用,我只是忘了,包括里面的变量。因为'jBarHeight'从每个'数据JC-height'获取数据他们都是不同的, – user3314062

+0

好吧,我们可以做的最好的建议是根据你提出的问题提供的信息,我还没有想出如何引导这个ESP的东西呢,哦,我想我浪费了我的时间。 – jfriend00

相关问题