2012-12-21 17 views
0
var name = new Array('freddy', 'mac', 'fanny', 'may'); 
var content = 'hi '.+name[i]+.'!'; 

$('div.class').each(function (i) { 
this.html(content); 
}); 

此javascript應輸出 hi freddy! hi mac! 嗨範妮! 你好!如果變量包含數組內容,如果在上下文外使用

但由於它引用了尚未設置的數組,因此該var存在錯誤。

+1

你是否注意到你錯過了'''在第二行呢? –

+1

什麼情況?你使用'。+'這不是一個操作符,而你需要'$(this)'。 – pimvdb

回答

3

您的content變量賦值,而當你指定的值,而不是當你使用這個變量的值進行評估。即一個普通的值不能包含對另一個值的引用。

你可以把它用來評估值的功能,當它被稱爲:

var name = new Array('freddy', 'mac', 'fanny', 'may'); 
var content = function(i) { return 'hi ' + name[i] + '!'}; 

$('div.class').each(function (i) { 
    $(this).html(content(i)); 
}); 
2

您沒有對報價進行排序,因爲i在分配內容時不存在,所以無法正常工作。你應該試試這個:

var content = 'hi, {0}!'; 

$('div.class').each(function(i) { 
    this.html(content.replace("{0}", name[i])); 
}); 
+0

對不起,這是一個拼寫錯誤的修復 – user1082764

相關問題