2013-03-08 66 views
0

我有一個循環:添加到我在一個循環?

for (var i in $quizData['answers']) { 

    $(".question"+(parseInt(i)+1)+" a").text($quizData['answers'][i]['answer']); 

}; 

在循環我需要添加一個1到我,我已經通過parseInt函數來實現這一點,有沒有更好的辦法?

+0

你可以做+ i + 1,但parseInt更安全。 – 2013-03-08 22:45:10

+0

您需要確保$ quizData鍵是數字。如果是這樣,只需使用**(i + 1)** – letiagoalves 2013-03-08 22:46:58

+1

@KevinB'parseInt(x,10)',也許..缺少假設的十進制基數是JavaScript沒有正確的。 – 2013-03-08 22:59:03

回答

0

只需使用一個循環,然後i + 1如果與0第一i開始:

for (var i = 0; i < $quizData.length; i++) { 
    $(".question" + (i + 1) + " a").text($quizData['answers'][i]['answer']); 
} 
+3

根據他的例子,'i'不需要從0開始,或者甚至是連續的 – 2013-03-08 22:45:13

+1

我敢打賭 - 他只是希望他的課程基於1而不是基於0的數據。 – Barmar 2013-03-08 22:46:26

+0

我需要從0開始,因爲我的數據從0開始,但是我爲每個數據塊定位的類從1開始 – panthro 2013-03-08 23:03:47

0

你的代碼是完全沒問題。沒有「更好」的方法來做同樣的事情。

無論您如何定義它,javascript中的對象鍵總是一個字符串。

例如:

var obj = { 1:"a", 2:"b"} 

最後很可能會因爲

{ "1":"a", "2":"b"} 
0

如果$ quizData [ '答案']是一個數組,你可以做

$quizData['answers'].forEach(function(element,i){ 
    $(".question"+(i+1)+" a").text(element['answer']); 
}); 

第一函數的參數是元素,第二個是你的數組的索引

+0

哦,哇,我只是試過了。從來不知道,即使存在。 – AlexCheuk 2013-03-08 22:55:43

+0

這沒有回答這個問題,我在循環中需要+1 – panthro 2013-03-08 23:06:23

+0

我是你的數組的索引,你可以添加+1到你的我沒有任何問題 – Bruno 2013-03-08 23:19:33

相關問題