2017-08-05 72 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

我用一些具體的東西改進了答案。 ;) –