2016-10-25 78 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它總是刪除數組的第一個值,而不是特定的值,但數據屬性按預期工作。Array總是選擇第一個值而不是具體的值

+0

這是工作的代碼還是不工作的代碼?如果你想知道爲什麼你的代碼不工作,你需要顯示非工作版本,而不是其他一些沒有問題的代碼。 – JJJ

+0

我已更新我不知道如何從該特定行中獲取值而不是從數組的第一個元素獲取數據 –

+0

您認爲代碼將如何知道'file'中的'i'是什麼? –

回答

1

i添加到<tr>作爲data屬性。

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

我得到一個錯誤「未捕獲的TypeError:無法讀取屬性'KEY'的未定義的」 –

+0

是'我'得到正確的值? – Barmar

+0

nope。它來了一個undefined –

相關問題