2014-03-28 66 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

相關問題