Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以数组形式检索选择器类的数据属性_Javascript_Jquery_Datatables_Attributes_Html Table - Fatal编程技术网

Javascript 以数组形式检索选择器类的数据属性

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

我正在运行一个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>
我认为逻辑可能从
$('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));