2010-07-01 97 views
2

我正在嘗試創建一個可以在頁面上多次使用的郵政編碼查找JQuery腳本,而不必爲頁面上的每個地址複製腳本。 Find按鈕具有類「postcodeLookup」和屬性「address」,這是我打算如何讓腳本填充正確的地址(它使用JQuery Populate插件)&輸入被命名爲address [line1],其中「address」是可改變的(家庭[line1],辦公室[line1]等)。如何在JSON中使用JS變量?

問題是如何讓JSON填充地址以使用變量內容而不是字面詞「地址」?

//postcode lookups 
$(".postcodeLookup").click(function(){ 
    alert("I am The Postcode Finder...\nPretending to find the address...\nFound it!"); 
    var address = $(this).attr('address'); 
    $("form").populate({ 
     address: { 
      line1: "First Line of Addr.", 
      line2: "Line 2!", 
      line3: "Line 3 of The Address", 
      postcode: "PO1 1PO" 
     } 
    }); 
    $(".addressArea").slideDown('fast'); 
}); 
+0

僅供參考,您不使用JSON那裏,你正在使用JavaScript的對象文字符號。 JSON是對象文字表示法的一個*子集*,它更易於解析。 http://json.org – 2010-07-01 10:01:30

回答

6
var addrName = "office"; 
var address = {}; 

address[ addrName ] = { 
    line1: "First line", 
    line2: "Line 2..." 
}; 

$("form").populate(address); 

現在,當addrNameoffice,這將是一樣寫

address['office'] = { } 

...這,又是完全一樣的東西象寫

address.office = { } 

而那小小的知識將會成爲immens非常有用的所有方面的JavaScript。

例如

for(var i = 0; i < 10; i++) { 
    window['var' + i] = i; 
} 

將實際創建的窗口對象10個變量(即公共變量)稱爲var0var1,... var9

好吧,所以這不是非常有用,但你明白了。

+0

完美,謝謝。 – bcmcfc 2010-07-01 09:48:10

+0

您的第一個示例中的尾隨逗號(在'line2'屬性之後)將導致IE失敗。 IE不喜歡懸掛逗號,無論是對象文字還是數組文字。 – 2010-07-01 09:52:43

+0

@ T.J。克勞德:很對!我即將增加更多房產,但認爲那些房產確實是非常重要的,所以我縮小了它的範圍,但錯過了逗號。接得好。 – 2010-07-01 09:57:40

0

也許你需要做這樣的事情,通常jQuery插件這種方式工作:

line1: function(data) {return youVariable},