首页 > Web开发 > 详细

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

时间:2015-02-04 08:12:04      阅读:265      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!