Основы рефакторинга Jquery / Javascript - PullRequest
1 голос
/ 23 марта 2012

Я все еще считаю себя новичком в том, что касается JavaScript / JQuery. Как бы я перефразировал это в метод / функцию, которую я могу использовать повторно.

$.getJSON('@Url.Action("GetLabNames", "Micro")', null, function(j) {
    var options = '';

    for (var i = 0; i < j.length; i++) {
        if (elem.value == j[i].Description) {
            options += '<option selected="selected" value="' + j[i].Lab_LN_ID + '">' + j[i].Description + '</option>'
        } else {
            options += '<option value="' + j[i].Lab_LN_ID + '">' + j[i].Description + '</option>'
        }
    }

    $(elem).html(options);

    $(elem).multiselect({
        multiple: false,
        header: "Select an option",
        noneSelectedText: 'Lab Name',
        selectedList: 1,
        minWidth: 150
    });

});

Я надеялся, что у меня будет что-то вроде

 CreateMultiSelect(elem, controller, action, text, value);

Но я не могу передать свойства объекта в функцию, например (Lab_LN_ID, Description), и сделать их текстовыми (например, Lab_LN_ID, Description), явно не работает, и я не уверен, как пойти на это?

1 Ответ

2 голосов
/ 23 марта 2012

Почему бы не вернуть объект json с общими именами свойств?Это значительно упростило бы это.

Например,

[{Text: 'text', Value: '1'},{Text: 'text', Value: '1'}]

Тогда вы можете очень легко создавать все ваши опции.

    $('<option />', { value: item.Value, text: item.Text });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...