2016-02-01 43 views
2

這個問題是關於數據表,得到數據表多選擇行的值作爲一個數組

我想獲得多個選擇的行值作爲一個數組,但不幸的是它作爲唯一的目標,

console.log(table.rows({'.selected').data()); 

var ids = jQuery.map(table.rows('.selected').data(), function (item) { 
    return item[3]; 
}); 

console.log(ids); 

通過使用此代碼我得到

[object, object, object,context:array[1]....] 
[] 

,但我無法得到像...

[array, array, array...] 
['test','test1'] 

這是什麼問題? 我試着用下面的問題,但我不能讓陣列, jQuery DataTables Getting selected row values

回答

0

你有沒有考慮使用自己的數據表迭代器every()方法?這裏是多選,在選定行的安慰了作爲字符串數組的數組的一個例子:

table.on('select.dt', function() { 
    var array = []; 
    table.rows('.selected').every(function(rowIdx) { 
     array.push(table.row(rowIdx).data()) 
    }) 
    console.log(array); 
}) 

演示 - >http://jsfiddle.net/0yvm41q7/

+0

當您取消選中某個複選框時,在執行下一次迭代之前,該行不會從數組中移除。你有辦法避免這種情況嗎? – Blawless

+0

@Blawless,上面沒有使用過的複選框,'array'只存在於函數範圍內。所以你在這裏失去了我):...... – davidkonrad

0

你可以叫指定者(),我無法找到這在文檔 - 我絕望了,只是試了一下,它的工作!

table.rows('.selected').data().toArray() 
相關問題