我需要使用switch语句根据检索到的提要构建标记。尽管我能够检索数据,但我想知道使用两个$(data.value.items).each(function (index, item) {将提要的标题附加到选择框和无序列表是否正确。有更好的方法来做同样的事情吗?

$.ajax({
    url: "http://www.zzz.com/text.json",
    dataType: 'json',
    success: function (data) {
      item_html = parseData(feedformat, data)
      var nextarea = $this.next('.area');
      nextarea.append(item_html).slideDown();
    },
    error: function () {
      area.html('fail'); }
});

function parseData(type, data) {
    var item_html ='';
    switch(type) {
        case 'thisfeed':
            item_html +='<select>';

            $(data.value.items).each(function (index, item) {
                item_html += '<option>'+item.title+'</option>';
            });

            item_html += '</select>';
            item_html += '<ul>';

            $(data.value.items).each(function (index, item) {
                item_html += '<li>'+item.title+'</li>
            });

            item_html += '</ul>';
            break;
       }
     return item_html;
    }

最佳答案

您可以在同一个循环中同时进行这两个操作

$.ajax({
    url      : 'http://www.zzz.com/text.json',
    dataType : 'json',
    success  : function (data) {
        var item_html = parseData(feedformat, data)
        var nextarea  = $this.next('.area');
        nextarea.append(item_html).slideDown();
    },
    error: function () {
        area.html('fail');
    }
});

function parseData(type, data) {
    switch(type) {
        case 'thisfeed':
            var select = $('<select />'),
                ul     = $('<ul />');

            $(data.value.items).each(function (index, item) {
                var option = $('<option />', {text : item.title}),
                    li     = $('<li />', {text : '.......'});

                select.append(option);
                ul.append(li);
            });
       }
    }
    return select.add(ul);
}

关于javascript - 将JSON数据附加到不同的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23373936/

10-13 02:56