2017-08-05 7 views
1

ajaxsubmitを使用してLinuxサーバーにファイルをアップロードします。ファイル名+ファイルサイズ+キャンセルボタンはアップロード後server.javascript jqueryでファイルが削除されたときにウェブサイトのstr(name + size + cancel)を削除する方法

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

マイajaxsumitコードは次のとおりです:successfully.Hereは私のhtmlコードされたファイルキャンセルボタンをクリックすると、ファイル名+ファイルサイズは、+ボタンを

$("#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>"); 
}, 
...... 

キャンセルすることは.Hereを消えます私のjsのコードです:

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

残念ながら、それは働いたfail.Here iは[キャンセル]をクリックrealize.Beforeしたい例があり、私のファイルのdivの内容は次のとおりです。私は2番目cancleをクリックした後

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

は、私のファイルのdivの内容は次のとおりです。

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

私はいくつかの具体的なもので答えを改善しました。 ;) –

関連する問題