将选择器类的数据属性作为数组检索
Retrieve data attribute of a selector class as an array
我正在运行一个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>
我需要获得array
中所有tr
的所有data
属性,在上表的情况下,它是:
var data_values = [1, 2, 8, 7];
我认为逻辑可能从$('tr').attr('data')
开始,但它返回undefined
。我已经对数据库进行了查询,它还返回了一个array
:
var database_returned_values = [2, 8];
我从一开始的目标就是删除database_returned_values
数组中找不到的tr
元素。我的解决方案是从data_values
中减去database_returned_values
数组。差异将是要删除的tr
。但我甚至无法开始获取data_values
。如何检索所有tr
的data
属性并将其放入array
中,或者有更简单的方法吗?
在这种情况下,要移除的tr
s是具有[1, 7]
的data
属性的那些;
您可以使用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
属性后面需要一些东西。
<tr data-id='7'>
然后jQuery有一个很好的方法可以使用,叫做data
。
$("tr").data("id")
您可以获取所有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));
Fiddle:http://jsfiddle.net/chrisbenseler/s8pytwdz/
然后,迭代这个新数组($.unique(ids))并检查需要检查的内容。
相关文章:
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 从Meteor中的数组中检索字符串
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 在 ajax 成功和循环 json 数组时检索 json 数组
- 如何从 Angular ng-repeat 指令中检索数组中的某些索引
- 动态插入并从数组中检索键值对 - Javascript
- 正在根据ID从数组中检索对象
- 如何使用javascript中的for循环成对检索数组元素
- 在未命名的json数组url中检索值
- 从source-mirth检索通道目标中的数组结果
- Worklight Javascript适配器:无法检索作为参数传递给适配器的数组值
- php检索多个json对象数组
- 将jquery HTML方法中的数据检索到数组中
- 如何使用getOptions在Jcrop中检索truesize数组值
- 使用JSON检索PHP数组,并使用javascript中的数组来填充播放列表
- 从JSON数组中检索数据
- 从 json 数组检索数据
- 无法使用PHP$_POST数组检索输入字段值
- 如何从javascript多维数组检索值
- 如何从JSON数组检索数据