Javascript jQuery Datatables-从其他页面检索信息

Javascript jQuery Datatables-从其他页面检索信息,javascript,jquery,datatables,jquery-datatables,Javascript,Jquery,Datatables,Jquery Datatables,我在从jQuery数据表获取信息时遇到问题。 这是表格: 我想获取存储在表中的信息。我试图通过以下方式实现这一点: var languages=[]; var people=[]; $("select[name='languageID']").each(function(){ languages.push( $(this).val() ); }); $("input:hidden[name='personID']").each(function(){ people.push

我在从jQuery数据表获取信息时遇到问题。 这是表格:

我想获取存储在表中的信息。我试图通过以下方式实现这一点:

var languages=[];
var people=[];

$("select[name='languageID']").each(function(){
    languages.push( $(this).val() );
});

$("input:hidden[name='personID']").each(function(){
    people.push( $(this).val() );
});
但它正在从当前选择的页面获取值。如果我在屏幕截图上这样的情况下运行它,那么只有第2页中的值才会被推送到数组中。我试图检查第1页中的值存储在哪里,但找不到任何内容。我也在墙上找过

有人能帮忙吗

问候

编辑:

所以我应该这样做:

table.column( 0 ).cache( 'search' ).each( function ( d ) { /*action here*/ } ); 
?

但是应该采取什么行动呢

当我调试
table.column(2).cache('search')我得到了这个:

[   choose language ", " choose language ", " choose language ", " choose language ", " choose language ", " choose language " ]
这是“所选语言”选择中的第一个选项。我想,我需要一些东西,可以从列中的每个单元格返回html代码,以便我以后可以对其进行分析。

在中,
fngedata
应该返回您需要的内容

$(document).ready(function() {
  oTable = $('#example').dataTable();

  oTable.$('#myButton').click( function () {
    var data = oTable.fnGetData( this );
    // ... do something with the array / object of data for the row
  } );
});
在新的api(v1.10+)中,您可能需要
column().cache()


这一次比预期的要难。首先,我尝试使用DataTableAPI,但这会将下拉列表作为HTML字符串返回,这不是很有用。然后我在datatable如何处理表单输入时遇到了这个问题。诀窍是认识到您的datatable对象可以从文档中检索节点,而不考虑分页

可以在我的网站上找到现场演示

编辑:根据与OP的讨论,可以使用以下代码,而不是依赖嵌入式列选择器:

table.$('select[name="languageID"]').each(function(index, value{
    languages.push($(value).val());
});

在我的情况下,我应该将代码修改为:

var languages=[];
var people=[];

table
  .column(0)
  .nodes()
  .each(function(a){
    people.push( $(a).find("input:hidden[name='personID']").val() );
});

table
  .column(2)
  .nodes()
  .each(function(a){
    languages.push( $(a).find("select[name='languageID']").val() );
});  

正如@ivan.sim所说,获取完整的表格数据并不容易,尽管我最后指出,您可以使用它从完整的表格(包括未显示的页面)中获取值(包括隐藏的输入等):

table.rows().every(function (rowIdx, tableLoop, rowLoop) {
    var data = this.node();
    console.log($(data).find('input').prop('checked'));
    console.log($(data).find('input[name=someField]').val());
});

什么版本?api最近发生了变化。+1有关
column()
的帮助,但是
cache()
在我的情况下不合适。我已经发布了我自己问题的答案,但非常感谢您的帮助:)@Hladeo不用在代码中嵌入那些列选择器,您只需执行
表。$('select')。每个(函数(){}。当我执行
表时。$('select[name=“languageID”]')。每个(函数(a){languages.push(a)})之后,我得到了所有行的索引:
[0,1,2,3,4,5]
@Hladeo尝试使用
表。$('select[name=“languageID”]')。每个(函数(索引,值){languages.push(值)})我在JSFIDLE中测试了它;应该行得通,几乎正确。应该是
languages.push($(value.val())
,然后再运行:)