我不知道我在做什么错。
var content = '';
$(document).ready(function() {
$('a.main_group').click(function(){
var t = $(this), gId = ('' + t.data('id')).split(',')[1];
var div = $('li div.cbp-hrsub div.cbp-hrsub-inner');
$.get(null, {__action: 'Get/Groups', groupId: gId, languageId: __lngId}, function (d){
var obj = d.action.Object;
$.each(obj, function(i, el){
$.get(null, { __action: 'Get/Groups', groupId: el.Id, languageId: __lngId}, function (node){
var obj2 = node.action.Object;
$.each(obj2, function(i, el){
content += "<div><h4>"+el.Title+"</h4>";
content += "<ul>";
$.get(null, {__action: 'Get/Groups', groupId: el.Id, languageId: __lngId}, function(node2){
var obj3 = node2.action.Object;
$.each(obj3, function(i, el){
content += "<li><a href='"+el.Url +"'>"+el.Title+"</a></li>";
});
});
content += "</ul></div>";
});
});
content += "</div></div>";
console.log(content);
});
});
});
});
我需要使用jQuery生成HTML代码,但我只能得到:<div></div>
如果我将每个分配的content += ''
更改为console.log
,则一切都很好。它看来内容变量每次都在初始化。我该如何解决?
,据我了解,$。get是异步的。所以
content += "</div></div>";
console.log(content);
在任何其他content+=
分配之前执行。看起来您需要对代码进行一些重新设计
我想我知道你想要什么,请尝试一下。
var content = '';
$(document).ready(function() {
$('a.main_group').click(function(){
var t = $(this), gId = ('' + t.data('id')).split(',')[1];
var div = $('li div.cbp-hrsub div.cbp-hrsub-inner');
$.get(null, {__action: 'Get/Groups', groupId: gId, languageId: __lngId}, function (d){
var obj = d.action.Object;
$.each(obj, function(i, el){
$.get(null, { __action: 'Get/Groups', groupId: el.Id, languageId: __lngId}, function (node){
var obj2 = node.action.Object;
$.each(obj2, function(i, el){
content += "<div><h4>"+el.Title+"</h4>";
content += "<ul>";
$.get(null, {__action: 'Get/Groups', groupId: el.Id, languageId: __lngId}, function(node2){
var obj3 = node2.action.Object;
$.each(obj3, function(i, el){
content += "<li><a href='"+el.Url +"'>"+el.Title+"</a></li>";
});
});
content += "</ul></div>";
});
});
content += "</div></div>";
console.log(content);
$("YOUR SELECTOR HERE").html(content);
});
});
});
});
您需要实际附加生成的HTML。