jQuery 个数据表 select 行包含数据集中的特定数据
jQuery datatables select rows with specific data from dataset
我正在使用 jQuery 数据表并寻找一种方法来使用按钮从整个数据集中 select 包含特定值的行(在本例中为 "foo") .
这是我用来填充 table:
的脚本
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/pdfmake-0.1.18/dt-1.10.12/b-1.2.2/b-html5-1.2.2/b-print-1.2.2/r-2.1.0/se-1.2.0/datatables.min.css"/>
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/pdfmake-0.1.18/dt-1.10.12/b-1.2.2/b-html5-1.2.2/b-print-1.2.2/r-2.1.0/se-1.2.0/datatables.min.js"></script>
var oTable = $('#table').DataTable({
'ajax': {
url: 'script-to-return-json-row-data.php',
type: "POST",
dataSrc: function ( data ) {
return data;
},
'columns': [
{
"data": "name",
"render": function ( data, type, row ) {
return data;
}
]
}
});
从 script-to-return-json-row-data.php
收到的示例数据集看起来像这样:
[
["name":"a-name-i-want-to-select","specific-value":"foo"],
["name":"a-name-i-dont-want-to-select","specific-value":"bar"]
]
过去,我能够使用下面的脚本 select 包含特定 class
的行
$('#select-specific-values-button').click(function(e){
oTable.rows( {search:'applied'} ).every(function(rowIdx, tableLoop, rowLoop){
if($(this.node()).hasClass('class-name')){
$(this.node()).addClass('selected');
}
});
});
不过我想知道是否有办法将上面的代码修改为仅 select 行,其中行数据 specific-value
等于 foo
。关于如何执行此操作的任何想法?
我知道下面的代码不会起作用,但这应该能很好地说明我要完成的工作:
$('#select-specific-values-button').click(function(e){
oTable.rows( {search:'applied'} ).every(function(rowIdx, tableLoop, rowLoop){
// if($(this).rowIdx.data.specific-value == 'foo'){
// $(this.node()).addClass('selected');
// }
});
});
这最终对我有用:
$('#select-specific-values-button').click(function(e){
oTable.rows( {search:'applied'} ).every(function(rowIdx, tableLoop, rowLoop){
if(oTable.row( rowIdx ).data().specific-value == 'foo'){
$(this.node()).addClass('selected');
}
});
});
我正在使用 jQuery 数据表并寻找一种方法来使用按钮从整个数据集中 select 包含特定值的行(在本例中为 "foo") .
这是我用来填充 table:
的脚本<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/pdfmake-0.1.18/dt-1.10.12/b-1.2.2/b-html5-1.2.2/b-print-1.2.2/r-2.1.0/se-1.2.0/datatables.min.css"/>
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/pdfmake-0.1.18/dt-1.10.12/b-1.2.2/b-html5-1.2.2/b-print-1.2.2/r-2.1.0/se-1.2.0/datatables.min.js"></script>
var oTable = $('#table').DataTable({
'ajax': {
url: 'script-to-return-json-row-data.php',
type: "POST",
dataSrc: function ( data ) {
return data;
},
'columns': [
{
"data": "name",
"render": function ( data, type, row ) {
return data;
}
]
}
});
从 script-to-return-json-row-data.php
收到的示例数据集看起来像这样:
[
["name":"a-name-i-want-to-select","specific-value":"foo"],
["name":"a-name-i-dont-want-to-select","specific-value":"bar"]
]
过去,我能够使用下面的脚本 select 包含特定 class
的行$('#select-specific-values-button').click(function(e){
oTable.rows( {search:'applied'} ).every(function(rowIdx, tableLoop, rowLoop){
if($(this.node()).hasClass('class-name')){
$(this.node()).addClass('selected');
}
});
});
不过我想知道是否有办法将上面的代码修改为仅 select 行,其中行数据 specific-value
等于 foo
。关于如何执行此操作的任何想法?
我知道下面的代码不会起作用,但这应该能很好地说明我要完成的工作:
$('#select-specific-values-button').click(function(e){
oTable.rows( {search:'applied'} ).every(function(rowIdx, tableLoop, rowLoop){
// if($(this).rowIdx.data.specific-value == 'foo'){
// $(this.node()).addClass('selected');
// }
});
});
这最终对我有用:
$('#select-specific-values-button').click(function(e){
oTable.rows( {search:'applied'} ).every(function(rowIdx, tableLoop, rowLoop){
if(oTable.row( rowIdx ).data().specific-value == 'foo'){
$(this.node()).addClass('selected');
}
});
});