在ajax的div.append中的id属性中添加一个变量

时间:2013-03-02 14:33:39

标签: ajax django jquery django-templates

我正在使用Django开发一个Web应用程序,我有这个ajax,我正在刷新数据库中的一些图像,以便在模板中显示它们。

function refreshUploadedImages() {
    var inputs = ['Designer Name', 'Color', 'Fabric', 'Type', 'Tag', 'Subtag'];
    $.getJSON('/admin/image-uploader/images', function(data) {
        $('#uploadedFiles').empty();
        for (uiid in data) {
            ui = data[uiid];

            var div = $('<div>');
            div.data('id', ui.id);
            // image
            var image = new Image();
            image.src = ui.url
            image.width = 180;
            div.append($('<div>').append(image));
            // list
            var ul = $('<ul>')
            div.append(ul)
            // inputs
            for (input in inputs) {
                ul.append(
                    $('<li>').append(
                    $('<label>').append(
                    $('<span>').append(document.createTextNode(inputs[input] + ':'))
                ).append($('<input>')))); 
            }
            $('#uploadedFiles').append(div);
            div.append('<li><input type="button" class="delete-img-btn" id = <<ui.id>> img-id=image.id value="Delete"/></li>'); 
        }
        $(window).trigger('uploadedImagesRefresh');
    });

    $(function(){
    //
        $('.delete-img-btn').live('click', function() {

            //asign the image id from the button attribute 'img-id'
            var id= $(this).attr('img-id');
            //The data to be send via ajax the server will recieve 2 POST variables ie. 'action' and 'id'(which is the img id)
            var data={
            'action':'/admin/image-uploader/',
            'pk' : id,
            'success':refreshUploadedImages

            };
            //The ajax request.
            vary = $('.delete-img-btn').attr('id');
            $.post("/admin/image-uploader/delete/"+vary , data);

        });
    });
}

我的问题是,在这一行

div.append('<li><input type="button" class="delete-img-btn" id = <<ui.id>> img-id=<<<image.id>>> value="Delete"/></li>');

我想为id分配一个变量ui.id,即(id = <<ui.id>>),它在div.append之外的某处定义。你能帮我解决一下这个问题。

1 个答案:

答案 0 :(得分:2)

这就是你想要的吗?

div.append(
   '<li><input type="button" class="delete-img-btn" id="'
      + ui.id + '" img-id="'
      + image.id + '" value="Delete"/></li>'); 

image.id虽未定义。