我正在努力使用输入名称值作为运行变量的选择器。 目前我有3个数据表,每个数据表有1个搜索按钮来更新表格。
我发现此代码重复,因为我添加的每个新表,我还必须添加一个新的单击函数,如下所示:
//example table and button
<button id="test1button" type="button" name="test1" class="tables">Submit</button>
<table id="test1">
</table>
//the codes I am trying to run
var test1 = $('#test1').DataTable({});
var test2 = $('#test2').DataTable({});
var test3 = $('#test3').DataTable({});
$('#test1button').click( function() {
test1.ajax.reload();
});
$('#test2button').click( function() {
test2.ajax.reload();
});
$('#test3button').click( function() {
test3.ajax.reload();
});
所以我认为找到一种方法来组合代码添加一个名称到按钮作为一个值来确定运行哪个var = test *可能更简单,更短。 所以我尝试了这个:
$('.tables').click( function() {
var getdatatable = this.name; //e.g. value=test1
getdatatable.ajax.reload();
});
这正确地检索了需要运行的var的名称,例如test1,但是当我尝试使用该值运行vars时,它不起作用。
这有效
$('.tables').click( function() {
test1.ajax.reload();
});
但这并不是
$('.tables').click( function() {
var getdatatable = this.name; //e.g. value=test1
getdatatable.ajax.reload();
});
我是否可以不使用不以这种方式使用的输入名称?
答案 0 :(得分:1)
你可以这样做。
$('.tables').click( function() {
var tableId= this.id;
var getdatatable = $('#'+tableId).DataTable({});
getdatatable.ajax.reload();
});
答案 1 :(得分:0)
确定关闭此问题是因为从阅读数据表中您可以选择表格,数据表将尝试创建新表格,或者如果已经完成,则将您带回旧实例。因此,通过编辑上面的一些示例,我使用this.name作为选择器来实现它的工作