在数据表初始化方法中访问数据属性的最干净的方法是什么
What would we the cleanest way to access data attribute INSIDE the datatables initialisation method
有谁知道为什么这两个初始化摘录都不起作用?尽管 table 具有 data
HTML 属性 javascript 仍然无法提取该值
$('.datatable').dataTable({
ajax: $(this).data("ajaxurl"),
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});
$('.datatable').dataTable({
ajax: this.dataset.ajaxurl,
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});
似乎 dataTable() 函数的范围与我预期的不同,因此 this
不包含对 DOM 元素的引用。
在初始化方法中访问数据属性的最简洁方法是什么?我能够做到这一点
var oTable = $('.datatable');
oTable.dataTable({
ajax: oTable.data("ajaxurl"),
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});
但我希望初始化代码是独立的。
这是一个 table
DOM 元素。
例如:
<table class="datatable" data-ajaxurl="/post/ajax.php">
</table>
您正在脱离上下文使用 this
变量,这就是为什么它不是 DataTables 对象的实例并且您的两个示例都不起作用的原因。
您的最后一个示例是在初始化期间访问 jQuery 对象的正确方法。
但是 DataTables 已经支持 data-
属性进行初始化,请参阅 this demo。例如,您可以使用 data-ajax
来定义 ajax
属性 值:
<table class="datatable display" data-ajax="/post/ajax.php">
</table>
您的代码可以简化为:
$('.datatable').dataTable({
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});
有谁知道为什么这两个初始化摘录都不起作用?尽管 table 具有 data
HTML 属性 javascript 仍然无法提取该值
$('.datatable').dataTable({
ajax: $(this).data("ajaxurl"),
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});
$('.datatable').dataTable({
ajax: this.dataset.ajaxurl,
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});
似乎 dataTable() 函数的范围与我预期的不同,因此 this
不包含对 DOM 元素的引用。
在初始化方法中访问数据属性的最简洁方法是什么?我能够做到这一点
var oTable = $('.datatable');
oTable.dataTable({
ajax: oTable.data("ajaxurl"),
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});
但我希望初始化代码是独立的。
这是一个 table
DOM 元素。
例如:
<table class="datatable" data-ajaxurl="/post/ajax.php">
</table>
您正在脱离上下文使用 this
变量,这就是为什么它不是 DataTables 对象的实例并且您的两个示例都不起作用的原因。
您的最后一个示例是在初始化期间访问 jQuery 对象的正确方法。
但是 DataTables 已经支持 data-
属性进行初始化,请参阅 this demo。例如,您可以使用 data-ajax
来定义 ajax
属性 值:
<table class="datatable display" data-ajax="/post/ajax.php">
</table>
您的代码可以简化为:
$('.datatable').dataTable({
columns: [
{ data: "id" },
{ data: "ip_address" },
{ data: "reason" }
]
});