Javascript 以数组形式检索选择器类的数据属性
我正在运行一个PHP+JQuery+DataTables页面。一切都进行得很顺利,我从以下方面得到了类似的分数:Javascript 以数组形式检索选择器类的数据属性,javascript,jquery,datatables,attributes,html-table,Javascript,Jquery,Datatables,Attributes,Html Table,我正在运行一个PHP+JQuery+DataTables页面。一切都进行得很顺利,我从以下方面得到了类似的分数: ....... <tbody> <tr data='1'> .... </tr> <tr data='2'> .... </tr> <tr data='1'> .... </tr> <tr d
.......
<tbody>
<tr data='1'>
....
</tr>
<tr data='2'>
....
</tr>
<tr data='1'>
....
</tr>
<tr data='8'>
....
</tr>
<tr data='2'>
....
</tr>
<tr data='7'>
....
</tr>
<tr data='7'>
....
</tr>
.
.
.
</tbody>
我认为逻辑可能从$('tr').attr('data')
开始,但它返回未定义的
。我已经对数据库执行了查询,它还返回了一个数组
:
var database_returned_values = [2, 8];
我的目标是从一开始就删除tr
元素,这些元素在数据库返回的\u值数组中找不到。我的解决方案是从数据值
中减去数据库返回的值
数组。差异将是要删除的tr
s。但我甚至无法开始提取数据\u值
。如何检索所有tr
的数据
属性并将其放入数组
中,或者是否有更简单的方法
在这种情况下,要删除的tr
s是那些具有[1,7]
属性的数据的 您可以使用each()
迭代所有tr
:
var data = new Array();
$("table tbody tr").each(function(){
if($.inArray($(this).attr("data")) == -1) // check if not in array
data.push($(this).attr("data"))
})
data
属性后面需要有内容
然后jQuery有一个很好的方法可以使用,叫做data
$(“tr”).data(“id”)
您可以获取所有tr,然后迭代它们。然后,您必须读取data-*属性(不应仅使用data=“anything”)并将其添加到空数组中。然后,删除重复项
只要您使用jQuery,就可以通过以下方式完成此操作:
<table>
<tr data-id="1"></tr>
<tr data-id="3"></tr>
<tr data-id="1"></tr>
<tr data-id="4"></tr>
<tr data-id="4"></tr>
<tr data-id="7"></tr>
</table>
var ids = [];
$("table tr").each(function(index, item) {
ids.push($(item).data("id"));
})
alert($.unique(ids));
var-id=[];
$(“表tr”)。每个(功能(索引,项目){
id.push($(item.data(“id”));
})
警报($.unique(id));
小提琴:
然后,迭代这个新数组($.unique(ids))并检查您需要检查的任何内容。是的,确实如此。他所能做的是检查each()回调函数中是否已经存在该项,或者在该项之后,删除重复项。@gideonappolbardelas在添加到数组中之前添加到检查中您不应该使用attr(“数据”)
<table>
<tr data-id="1"></tr>
<tr data-id="3"></tr>
<tr data-id="1"></tr>
<tr data-id="4"></tr>
<tr data-id="4"></tr>
<tr data-id="7"></tr>
</table>
var ids = [];
$("table tr").each(function(index, item) {
ids.push($(item).data("id"));
})
alert($.unique(ids));