以任何顺序删除img元素

时间:2014-01-25 17:55:22

标签: php jquery ajax kendo-ui kendo-upload

我正在使用Kendoui上传我的网站上的异步上传。

我的一个小功能是,当图片上传完成后,会创建一个小缩略图并在页面上显示预览:

...
success: function(e)
{
    if(e.operation == 'upload')
    {
        $('#previews').append('<img src="'+ROOT+'cakes/'+e.files[0].name+'"/>');
    }
    else if(e.operation == 'remove')
    {
        $('#previews img[src="'+ROOT+'cakes/'+e.files[0].name+'"]').remove();
    }
...

正如你所看到的,我正在匹配img src属性,我认为这可能是缓慢而低效的。有没有更好的方法来实现我的目标?

1 个答案:

答案 0 :(得分:0)

首先,如果您当前的代码正常工作,那么除非您确实遇到性能问题,否则无需更改它。现代计算机/手机现在非常快,以至于当你遇到性能问题时,你真的应该花时间解决性能问题。否则,您可以更好地花时间以其他方式改进您的应用/页面。

也就是说,通过id查找内容比查找大多数其他方式快得多(当然比查找src之类的属性更快。你可以像这样从文件名中输入一个唯一的id,在创建图像时将其指定给图像,然后使用它来查找图像以将其删除:

success: function(e)
{
    var name = "img_" + e.files[0].name.replace(/[.\/ ]/, "_"); 
    if (e.operation == 'upload')
    {
        $('#previews').append('<img id="' + name + '" src="'+ROOT+'cakes/'+e.files[0].name+'"/>');
    }
    else if(e.operation == 'remove')
    {
        $('#' + name).remove();
    }
...