Как использовать переменную JS в JSON? - PullRequest
2 голосов
/ 01 июля 2010

Я пытаюсь создать JQuery-скрипт для поиска по почтовому индексу, который можно будет использовать на странице несколько раз, без необходимости дублировать скрипт для каждого адреса на странице.Кнопка «Найти» имеет класс «postcodeLookup» и атрибут «адрес», как я и хотел, чтобы скрипт заполнил правильный адрес (он использует плагин JQuery Populate), а входные данные называются address [line1], где «address»является изменяемым (home [line1], office [line1] и т. д.).

Проблема в том, как получить 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');
});

Ответы [ 2 ]

6 голосов
/ 01 июля 2010
var addrName = "office";
var address = {};

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

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

Теперь, когда addrName равно office, это будет то же самое, что и запись

address['office'] = { }

... что, в свою очередь, точно то же самое как письмо

address.office = { }

И этот маленький кусочек знания будет чрезвычайно полезен во всех аспектах JavaScript.

Например,

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

Фактически создаст 10переменные в объекте окна (то есть публичные переменные), называемые var0, var1, ..., var9.

Хорошо, так что это было не очень полезно, но вы поняли идею.

0 голосов
/ 01 июля 2010

Возможно, вам нужно сделать что-то вроде этого, обычно плагины jQuery работают следующим образом:

line1: function(data) {return youVariable},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...