2016-10-25 5 views
-2
refreshFileList = function() { 
    $("#filedetails tr").remove(); 
    for (i = 0, j = fileDetails.length; i < j; ++i) { 
    $("#filedetails").append("<tr data-filesize='" + fileDetails[i].SIZE + "' data-filename='" + fileDetails[i].KEY + "'><td><strong>" + fileDetails[i].FILENAME + "</strong></td><td class='nodesize'>" + fileDetails[i].SIZE + " MB</td><td>" + fileDetails[i].EXT + "</td>" + fileDetails[i].TAG + "</tr>"); 
    } 
}, 

fileDelete = function(e) { 
    e.preventDefault(); 
    var parentRow = jQuery(this).closest('tr') 
    , fileName = fileDetails[i].KEY 
    , fileSize = fileDetails[i].SIZE; 
    ajaxFileDelete(fileName, parentRow, fileSize); 
}, 

fileDelete関数にはdata-filenameとdata-filesizeは使用しませんが、fileName = fileDetails [i] .KEYまたはfileSize = fileDetails [i] .SIZEは常に、特定の値ではなく配列の最初の値を削除しますが、データ属性は期待通りに機能します。配列は常に特定の値ではなく最初の値を選択します

+0

これは動作するコードですか、動作しないコードですか?あなたのコードがうまくいかない理由を知りたければ、問題のない他のコードではなく、動作しないバージョンを表示する必要があります。 – JJJ

+0

私は更新しました配列の最初の要素からデータを取得するのではなく、特定の行から値を取得する方法がわかりません –

+0

'fileDelete'に' i'が何であるかを知る方法は? –

答えて

1

data属性として<tr>iを追加します。

refreshFileList = function() { 
    $("#filedetails tr").remove(); 
    for (var i = 0, j = fileDetails.length; i < j; ++i) { 
    $("#filedetails").append("<tr data-index='" + i + "'><td><strong>" + fileDetails[i].FILENAME + "</strong></td><td class='nodesize'>" + fileDetails[i].SIZE + " MB</td><td>" + fileDetails[i].EXT + "</td>" + fileDetails[i].TAG + "</tr>"); 
    } 
}, 

fileDelete = function(e) { 
    e.preventDefault(); 
    var parentRow = jQuery(this).closest('tr') 
    , i = parentRow.data('index') 
    , fileName = fileDetails[i].KEY 
    , fileSize = fileDetails[i].SIZE; 
    ajaxFileDelete(fileName, parentRow, fileSize); 
}, 
+0

"Uncaught TypeError:未定義の 'KEY'プロパティを読み取ることができません。 –

+0

' i'は正しい値を得ていますか? – Barmar

+0

その結果は未定義です –

関連する問題