2011-10-15 84 views
0

OK讓我們說我有這樣的:JQuery的JSON - 使用變量

<!DOCTYPE html> 
<html> 
<head> 
    <style>img{ height: 100px; float: left; }</style> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
    <div id="images"> 
Hello<br /> 
</div> 
<script> 
$.getJSON("main.txt", 
    function(data) { 
    var getTitle = title;  
    $.each(data.getTitle, function(i,getTitle){ 
     $("#images").append(getTitle); 
    }); 
    });</script> 
</body> 
</html> 

它不會因爲var getTitle = title工作。我知道。但如果我拿出var並用title替換getTitle這是INSIDE JSON文件..它會工作。但我不想編輯每個代碼的三塊title,所以我只是做一個變量,所以我可以一次編輯所有三個...但它不起作用...

+1

我不明白你想做什麼。什麼是「標題」 - 是在什麼地方定義的? – Guard

+0

@Guard,它是一個錯字,他的意思是var getTitle =「title」;關鍵是如果JSON發生變化,他只需要改變getTitle的值。但我同意它不是很清楚。 – stevenrcfox

+0

'data.title'是一個字符串。你爲什麼使用'$ .each()'? – Eric

回答

1

我只是做一個變量,這樣我可以一次

這並沒有任何意義編輯所有三個。變量的名稱完全不重要。對於你在做什麼,該作品一樣好:

$.getJSON('main.txt', function(data) { 
    $.each(data.title, function(i, anyVariableNameILikeGoesHere) { 
     $('#images').append(anyVariableNameILikeGoesHere); 
    }); 
}); 

然而,jQuery的實際提供寫這更簡潔的方式:

$.getJSON('main.txt', function(data) { 
    $.each(data.title, function() { 
     $('#images').append(this); 
    }); 
}); 

除了但是,爲什麼你迭代data.title?看着你的JSON,這是一個單一的字符串!這是一個更好的寫法:

$.getJSON('main.txt', function(data) { 
    $('#images').append(data.title); 
}); 
2

而不是訪問該對象作爲data.getTitle,請嘗試使用[]。

var getTitle = "title"; 
$.each(data[getTitle], function(........) 

這會解決問題。

+0

嗯...這個工程。謝謝。 – nn2