首页 > 代码库 > 在循环中创建网页元素的问题
在循环中创建网页元素的问题
for (var i = 0; i < json.length; i++) { var topic = json[i]; var btn = $(‘<button>‘); btn.addClass(‘btn btn-primary‘); btn.attr(‘type‘, ‘button‘); btn.html(topic.topicComment); $.getJSON(‘action.action‘, { topicId : topic.p2pTopicId }, function(res) { var jsn = $.parseJSON(res); var cnt = parseInt(jsn); if (cnt > 0) { btn.removeClass(‘btn-default‘).addClass(‘btn-primary‘); } else { btn.removeClass(‘btn-primary‘).addClass(‘btn-default‘); } }); $(‘#hrAfterBtn‘).before(btn);}
这样创建是有问题的,其中的$.getJSON会在所有的循环都结束之后才调用,
这样其中的btn对象就是循环结束之后的最后的那个btn对象;
需要将其中的创建过程提炼成一个函数:
for (var i = 0; i < json.length; i++) { var topic = json[i]; createMsgButton(topic);}function createMsgButton(topic) { var btn = $(‘<button>‘); //... }
在循环中创建网页元素的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。