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

Posted

技术标签:

【中文标题】在 ajax 的 div.append 的 id 属性中添加一个变量【英文标题】:add a variable in an id attribute in ajax's div.append 【发布时间】:2013-02-17 00:15:26 【问题描述】:

我正在使用 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 = &lt;&lt;ui.id&gt;&gt;),它在 div.append 之外的某个地方定义。你能帮我看看怎么做吗?

【问题讨论】:

:/ 请尝试格式化您的代码!它几乎不可读。 【参考方案1】:

这就是你想要做的一切吗?

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

image.id 没有定义。

【讨论】:

以上是关于在 ajax 的 div.append 的 id 属性中添加一个变量的主要内容,如果未能解决你的问题,请参考以下文章

dom节点的操作

jQuery

jQuery的节点操作

如何在 ajax 函数中同时调用帖子 ID 和按钮 ID?

Laravel/Ajax:在 ajax 函数中使用类/id 来调用表格内容而不是标签

jQuery常用要点