我从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的值存储在哪里,但找不到任何东西。我也在jQuery datatables homepage上寻找了
有人可以帮忙吗?
问候
编辑:
所以我应该做这样的事情:
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代码,以便以后进行分析。
最佳答案
结果比预期的要难。首先,我尝试使用数据表 data()
API,但这会以HTML字符串的形式返回下拉列表,这并不是很有用。然后,我遇到了这个article关于数据表如何处理表单输入的问题。诀窍是要认识到,无论分页如何,数据表对象都可以从文档中检索节点。
可以在我的jsfiddle上找到一个现场演示。
编辑:根据与OP的讨论,可以使用以下代码,而不是依赖于嵌入式列选择器:
table.$('select[name="languageID"]').each(function(index, value{
languages.push($(value).val());
});