Javascript 从表td获取所有属性作为数组

Javascript 从表td获取所有属性作为数组,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我有一张表格,里面有td和id=td1的复选框 我想从所有选中的复选框中获取属性数据引用作为javascript数组 比如: [{"data-ref": "test1"}, {"date-ref": "test2"}, ... ] 如果我只需要获取data ref值就足够了,比如: ['test1', 'test2', ...] 选中复选框我可以使用: $('#tableUSNW tbody tr td :checked'); 如何将所有属性数据引用为数组?有没有比从jQuery编写eac

我有一张表格,里面有
td
id=td1
的复选框

我想从所有选中的
复选框中获取属性
数据引用
作为javascript
数组

比如:

[{"data-ref": "test1"}, {"date-ref": "test2"}, ... ]
如果我只需要获取
data ref
值就足够了,比如:

['test1', 'test2', ...]
选中
复选框
我可以使用:

$('#tableUSNW tbody tr td :checked');
如何将所有属性数据引用为数组?有没有比从
jQuery
编写
each()
函数更简单的方法


斯托尔佩克1号
斯托尔佩克2号
斯托尔佩克3
测试2测试3
测试2测试3
测试2测试3
测试2测试3
测试2测试3

这里有一种方法,使用jQuery的
每个

对于
id
,我也稍微清理了一下标记,因为它们应该是唯一的

var checked_datarefs=[];
$(“#视图”)。单击(函数(){
$(“#tableUSNW input[type='checkbox']:checked”)。每个(函数(索引){
选中的_datarefs.push($(this).closest('td')。data('ref'));
});
console.log(选中的数据引用);
});

斯托尔佩克1号
斯托尔佩克2号
斯托尔佩克3
测试2
测试3
测试2
测试3
测试2
测试3
测试2
测试3
测试2
测试3

选中
这里有一种方法,使用jQuery的
每个

对于
id
,我也稍微清理了一下标记,因为它们应该是唯一的

var checked_datarefs=[];
$(“#视图”)。单击(函数(){
$(“#tableUSNW input[type='checkbox']:checked”)。每个(函数(索引){
选中的_datarefs.push($(this).closest('td')。data('ref'));
});
console.log(选中的数据引用);
});

斯托尔佩克1号
斯托尔佩克2号
斯托尔佩克3
测试2
测试3
测试2
测试3
测试2
测试3
测试2
测试3
测试2
测试3

选中
而不是使用任何循环,您可以动态操作所有选中复选框的
数据引用
属性列表。
使用
设置
对象的解决方案:

var dataRefs=new Set();
$(“#tableUSNW input[type='checkbox']”)。在('change',function()上{
var ref=$(this.parent().data('ref');
如果($(this).is(':checked')){
数据参考添加(参考);
}否则{
数据参考。删除(参考);
}
});
$('showRefList')。在('click',function()上{
警报(Array.from(dataRefs));
})

斯托尔佩克1号
斯托尔佩克2号
斯托尔佩克3
测试2测试3
测试2测试3
测试2测试3
测试2测试3
测试2测试3

显示数据引用列表
不使用任何循环,您可以动态操作所有选中复选框的
数据引用
属性列表。
使用
设置
对象的解决方案:

var dataRefs=new Set();
$(“#tableUSNW input[type='checkbox']”)。在('change',function()上{
var ref=$(this.parent().data('ref');
如果($(this).is(':checked')){
数据参考添加(参考);
}否则{
数据参考。删除(参考);
}
});
$('showRefList')。在('click',function()上{
警报(Array.from(dataRefs));
})

斯托尔佩克1号
斯托尔佩克2号
斯托尔佩克3
测试2测试3
测试2测试3
测试2测试3
测试2测试3
测试2测试3
显示数据参考列表
更新 我忘了添加从数组中删除
数据ref
值的操作
refArray

根据OP的请求,以下代码段不使用
.each()
。该函数的目的是收集作为选中复选框父项的每个
的属性
data ref
的值,然后以数组形式返回结果

虽然与问题无关,但值得一提的是id属性的使用,我们必须始终确保每个属性在页面上都是唯一的。因此,在代码段中,重复的ID已被更正

详细信息在代码段中注释:

一小条
/*创建一个空数组*/
var-refArray=[];
/*任何复选框上的任何更改事件
|将触发该函数
*/
$(':checkbox')。在('change',function()上{
/*$(这是指函数所有者,在
|在这种情况下,它是特定的复选框
*/
/*选中复选框的父项的数据引用*/
var ref=$(this).parent('td')。data('ref');
如果($(this).is(':checked')){
/*将数据引用值添加到重新排列*/
重新排列。推动(参考);
}否则{
/*从refArray中删除数据引用值*/
refArray.pop(ref);
}
控制台日志(重新排列);
});

斯托尔佩克1号
斯托尔佩克2号
斯托尔佩克3
测试2
测试3
测试2
测试3
测试2
测试3
测试2
测试3
测试2
测试3
更新 我忘了添加从数组中删除
数据ref
值的操作
refArray

根据OP的请求,以下代码段不使用
.each()
。该函数的目的是收集作为选中复选框父项的每个
的属性
data ref
的值,然后以数组形式返回结果

虽然与问题无关,但值得一提的是id属性的使用,我们必须始终确保每个属性在页面上都是唯一的。因此,在代码段中,重复的ID已被更正

详细信息在代码段中注释:

一小条
/*创建一个空数组*/
var-refArray=[];
/*任何复选框上的任何更改事件
|将触发该函数
*/
$(':checkbox')。在('change',function()上{
/*$(本
else {
 refArray.pop.(ref);
}