Javascript jQuery Datatables-从其他页面检索信息
我在从jQuery数据表获取信息时遇到问题。 这是表格: 我想获取存储在表中的信息。我试图通过以下方式实现这一点: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
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())
,然后再运行:)