2013-01-21 31 views
1

當上傳完成時,我有一個jquery函數,它將文件的名稱存儲在一個字符串中,並且它是文本輸入中的id。現在在函數的底部,如果用戶點擊了deletevideofile按鈕,則假定刪除屬於該刪除按鈕的文件名和文本輸入。但問題是,即使認爲它只刪除了正確的文件名,它也會刪除所有文本輸入,而不是僅刪除正確的文本輸入。如何只刪除正確的文本輸入?

我的問題是我怎麼才能只刪除正確的文本輸入,當刪除按鈕被點擊?

下面是代碼:

function stopVideoUpload(success, videoID, videofilename){ 

     var result = ''; 
     videocounter++; 

     if (success == 1){ 
     result = '<span class="videomsg'+videocounter+'">The file was uploaded successfully</span>'; 
      $('.listVideo').eq(window.lastUploadVideoIndex).append('<input type="text" name="vidid" value="' + videoID + '" />'); 
      $('.listVideo').eq(window.lastUploadVideoIndex).append('<div>' + htmlEncode(videofilename) + '<button type="button" class="deletefilevideo" video_file_name="' + videofilename + '">Remove</button><br/><hr/></div>');  } 

    var _videocounter = videocounter; 

$('.listVideo').eq(window.lastUploadVideoIndex).find(".deletefilevideo").on("click", function(event) { 
    var video_file_name = $(this).attr('video_file_name'); 

    jQuery.ajax("deletevideo.php?videofilename=" + video_file_name) 
     .done(function(data) { 

     $(".videomsg" + _videocounter).html(data); 
    }); 

     $(this).parent().siblings('input[name="vidid"]').andSelf().remove(); 
}); 


     return true; 
} 
+0

'$(本).closest( 'listVideo ')找到(' 輸入[名稱= 「vidid」]')刪除();' – adeneo

回答

4

除了具有名稱「vidid」生成的輸入框,添加一個id屬性到<input>元件具有每個視頻的唯一ID。

然後在你的.remove()線匹配屬於正在生成<input>id改變選擇在.siblings()功能。

下面是一些JavaScript示例。 ,修改它以滿足您的需求:

function stopVideoUpload(success, videoID, videofilename) { 

    var result = '', _videocounter; 
    videocounter++; 

    if (success == 1) { 
     result = '<span class="videomsg'+videocounter+'">The file was uploaded successfully</span>'; 
     $('.listVideo').eq(window.lastUploadVideoIndex).append('<input type="text" name="vidid" id="'+videoID+'" value="' + videoID + '" />'); 
     $('.listVideo').eq(window.lastUploadVideoIndex).append('<div>' + htmlEncode(videofilename) + '<button type="button" class="deletefilevideo" data-videoID="'+videoID+'" data-video_file_name="' + videofilename + '">Remove</button><br/><hr/></div>'); 
    } 

    _videocounter = videocounter; 

    $('.listVideo').eq(window.lastUploadVideoIndex).find(".deletefilevideo").on("click", function(event) { 
     jQuery.ajax("deletevideo.php?videofilename=" + $(this).attr('data-video_file_name')).done(function(data) { 
      $(".videomsg" + _videocounter).html(data); 
     }); 

     $(this).parent().siblings('#'+ $(this).attr('data-videoID')).andSelf().remove(); 
    }); 


    return true; 
} 
+0

感謝您。答案,它的工作,我可以問一個小問題,你可以幫助我,當我刪除一個文件,它顯示消息'samplevideo_23.mp4已刪除,但單詞'已刪除'重疊的句子,你知道這是爲什麼? – user1964964

+0

不知道,它可能是一個CSS問題,用Firebug或IE開發人員工具檢查元素。 –