【发布时间】:2016-11-17 14:34:47
【问题描述】:
我不是很喜欢 jQuery,但我需要学习它,这样我才能意识到我正在做的一些项目。
我使用带有 select-Extension 的 Datatables 来多选表格行。之后我需要在 php.ini 中处理这些行的值。所有这些都像一个魅力,问题是我只能在一个表格中使用一个表。这意味着我只能将具有“table_select”类的第一个表的结果放入 $_POST-Variable 中。
我尝试更改 jQuery-Code 以使用此类迭代所有对象,因此我创建了一个数组并尝试使用 [Array.length] 推送此数组,但我仍然只能获取 Array[0] 中的值。
我做错了什么?
var table = [];
table[table.length] = $('.table_select').DataTable( {
'initComplete': function(){
var api = this.api();
api
.rows()
.every(function(){
var data = this.data();
if(data[1] === '1'){
api.cells(this.index(), 0).checkboxes.select();
}
});
},
order: [[2, "asc"]],
paging:false,
info:false,
filter:false,
language: {
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json",
},
columns: [
null,
{ "visible": false},
null
],
'columnDefs': [{
'targets': 0,
'checkboxes': {
'selectRow': true,
'selectAll': false
}
}],
select: {
style: 'multi'
}
});
flen = table.length;
在这种情况下,flen 总是“1”,即使我有 4 个带有“table_select”-Class 的 Tabes。
提前感谢您的帮助!
编辑:
我根据cmets把代码改成:
table = $('.table_select').DataTable( {
'initComplete': function(){
var api = this.api();
api
.rows()
.every(function(){
var data = this.data();
if(data[1] === '1'){
api.cells(this.index(), 0).checkboxes.select();
}
});
},
order: [[2, "asc"]],
paging:false,
info:false,
filter:false,
language: {
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json",
},
columns: [
null,
{ "visible": false},
null
],
'columnDefs': [{
'targets': 0,
'checkboxes': {
'selectRow': true,
'selectAll': false
}
}],
select: {
style: 'multi'
}
});
alert(table.length);
在这种情况下,警报总是“0”。
Edit2:示例 jsfiddle:jsfiddle.net/tu59s6Ls
【问题讨论】: