зацикливание данных JSON для заполнения HTML

0

У меня есть данные JSON ниже, и в основном то, что я хочу сделать, это заполнить несколько div с соответствующим HTML, включенным в массив.

[{"id":"1","name":"profile title","html":"<h2 class=\"entry-title\" id=\"title\">Settings, Put something here?<\/h2>","typeId":"1"},
{"id":"2","name":"username","html":"<fieldset disabled><br><label for=\"nameinput\">Username<\/label><input type=\"text\" class=\"form-control\" placeholder=\"'.$name.'\" ><\/fieldset><p>","typeId":"1"},
{"id":"3","name":"date of birth","html":"<label for=\"dob\">Date of birth<\/label><input type=\"text\" name=\"dob\" class=\"form-control\" placeholder=\"01\/02\/2000\"><p>","typeId":"1"}]

Вот JS:

$(document).ready(function(){
         $("#profile").one("click",function(){  

                $.ajax( {
                    type: "GET",
                    url: ROOT+"controlpanel/profile",
                    dataType:"json",
                    success: function(data){   

                            $.each(data, function(id, data1) 
                             {

                                    $('#title').html(data1.html);
                                    $('#container').append(data1.html);  
                            });
                        }


        });
    });
});

Проблема в том, что я хотел бы, чтобы html в ID 1 переходил в другой div на id 2.

  • 0
    Каждый элемент в массиве должен идти в разные div?
Теги:

1 ответ

1
Лучший ответ

Как насчет этого?

$(document).ready(function(){
    $("#profile").one("click",function(){  
        $.ajax( {
            type: "GET",
            url: ROOT+"controlpanel/profile",
            dataType:"json",
            success: function(data){   

                $.each(data, function(id, data1) 
                {
                    $('#title'+data.id).html(data1.html);
                    $('#container'+data.id).append(data1.html);  
                });
            }
        });
    });
});

Конечно, если ваш json-массив может иметь произвольную десятую часть, есть вероятность, что у вас еще нет элементов для размещения содержимого. Вы можете построить html для хранения ваших данных внутри цикла. Или вы можете использовать скрытый html-шаблон и использовать jquery.clone() для его копирования, а затем заполнить его в цикле. Вы можете использовать jquery.append() чтобы добавить все ваши фрагменты html в один и тот же контейнер, возможно, завернутый в div. Вы можете создать новый элемент с jquery('div', {}), добавить этот элемент где-нибудь и добавить свой html в этот новый div.

Там много способов справиться с этим. Надеюсь, это поможет вам на вашем пути. Если вам нужны более подробные советы, укажите более подробные сведения в своем вопросе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню