У меня есть данные 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.
Как насчет этого?
$(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.
Там много способов справиться с этим. Надеюсь, это поможет вам на вашем пути. Если вам нужны более подробные советы, укажите более подробные сведения в своем вопросе.