我正在运行PHP + JQuery + DataTables页面。一切都很顺利,我从下面得到了类似的标记:
.......
<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>
我需要获取data
中所有tr
的所有array
属性,以及上表中的情况:
var data_values = [1, 2, 8, 7];
我认为逻辑可能会从$('tr').attr('data')
开始,但会返回undefined
。我已经对数据库执行了查询,并且还返回了array
:
var database_returned_values = [2, 8];
我的目标是从一开始就删除tr
数组中找不到的database_returned_values
元素。我的解决方案是从database_returned_values
中减去data_values
数组。差异将是要移除的tr
。但我甚至无法开始取data_values
。如何检索所有data
的{{1}}属性并将其放在tr
中,还是有更简单的方法可以执行此操作?
在这种情况下,要删除的array
是tr
属性为data
的<{1}};
答案 0 :(得分:1)
您可以使用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"))
})
答案 1 :(得分:1)
data
属性需要有一些东西。
<tr data-id='7'>
然后jQuery有一个很好的方法,你可以用data
。
$("tr").data("id")
答案 2 :(得分:0)
你可以得到所有的trs,然后迭代它们。然后,您必须读取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));
小提琴:http://jsfiddle.net/chrisbenseler/s8pytwdz/
然后,迭代这个新数组($ .unique(ids))并检查你需要检查的内容。