码迷,mamicode.com
首页 > Web开发 > 详细

在循环中创建网页元素的问题

时间:2015-02-04 08:13:51      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

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>‘);
    //...   
}

 

在循环中创建网页元素的问题

标签:

原文地址:http://www.cnblogs.com/stono/p/4271484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!