2017-08-05 58 views
1

我使用ajaxsubmit将文件上传到linux服务器。文件名+文件大小+取消按钮将出现在我的网站上传后文件successfully.Here是我的html代码:如何在server.javascript中删除文件时删除str(名称+大小+取消)jquery

<style type="text/css"> 
.files{height:10px; font-size:10px;line-height:22px; margin:10px 0} 
</style> 
<div class="files"></div> 

我ajaxsumit代码:

$("#myupload").ajaxSubmit({ 
     dataType: 'json', 
     ...... 
success: function(data) { 
files.html(files.html()+"<br />"+"<b id='dataname'>"+data.name+"("+data.size+"k)</b> <span class='delimg' rel='"+data.pic+"' id='cancelbtn'>cancel</span>"); 
}, 
...... 

当取消按钮被点击时,文件名+文件大小+取消按钮会消失。这里是我的js代码:

$(document).on('click',".delimg",function(){ 
    var filename = $('#dataname').val()+"cancel"; 
      files.html(files.html().replace(new RegExp(filename,"g"),"")); 
}); 

不幸的是,它的工作fail.Here是例子,我想realize.Before单击取消,我的文件格内容是:

1.jpg(10.36k) cancel 
2.jpg(10.36k) cancel 
3.jpg(10.36k) cancel 

后,我点击第二个CANCLE,我的文件格内容是:

1.jpg(10.36k) cancel 
3.jpg(10.36k) cancel 

谁能帮帮我?

回答

0

问题是id='dataname

您不能使用倍数相同的id
改为使用类。 More reading about it这里。

所以...
<b class='dataname'>
而不是
<b id='dataname'>

,并删除无用id='cancelbtn'

然后点击事件处理程序应该是:

$(document).on('click',".delimg",function(){ 
    $(this).prev('.dataname').remove(); // removes the filename 
    $(this).remove(); // Removes the "cancel" 
}); 

没有必要在这里正则表达式。
你有类去定位要删除的元素。

正则表达式用于定位字符串中的字符模式。

+0

,如何使用一个类?你能告诉我代码吗?对不起,我不知道如何使用类。 – stack

+0

我用一些具体的东西改进了答案。 ;) –