Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 使用jQuery从元素列表创建特定属性的数组_Javascript_Jquery - Fatal编程技术网

Javascript 使用jQuery从元素列表创建特定属性的数组

Javascript 使用jQuery从元素列表创建特定属性的数组,javascript,jquery,Javascript,Jquery,假设我有一些div <div data-id="1"></div> <div data-id="2"></div> <div data-id="3"></div> <div data-id="4"></div> 是否有一种方法可以在不使用的情况下获取数据id属性的数组:[“1”、“2”、“3”、“4”]。每个?都可以使用: 或者,使用纯JS: …或使用常规for循环: var-elements

假设我有一些div

<div data-id="1"></div>
<div data-id="2"></div>
<div data-id="3"></div>
<div data-id="4"></div>

是否有一种方法可以在不使用
的情况下获取
数据id
属性的数组:
[“1”、“2”、“3”、“4”]
。每个

都可以使用:


或者,使用纯JS:

…或使用常规for循环:

var-elements=document.querySelectorAll('div[data-id]”),
数组=[],
我
对于(i=0;i
如果您正在寻找更原始的解决方案,您可以使用for循环,甚至不使用JQuery也可以这样做,例如:

var nodes = document.querySelectorAll('[data-id]');
for(var i=0;i<nodes.length;i++){
   // do something here with nodes[i]
} 
var数组=$('div[data id]')//数组
将按照数据id在DOM中出现的顺序存储包含数据id的所有div


因此,假设您想要得到第二个div,只需像这样做
数组[1]。attr('id')

您可以使用for循环,不确定是否将其包含在“未使用.each”部分中。无论使用何种方法,都需要在元素snice上循环。你知道地图和循环的效率吗?循环总是会更快,但如果你不经历数千个元素,那就没关系了
var elements = document.querySelectorAll('div[data-id]'),
    array = [];

Array.prototype.forEach.call(elements, function(el){
    array.push(parseInt(el.dataset.id, 10));
});

console.log(array);
var elements = document.querySelectorAll('div[data-id]'),
    array = [],
    i;

for (i = 0; i < elements.length; i += 1) {
    array.push(parseInt(elements[i].dataset.id, 10));
}

console.log(array);
var nodes = document.querySelectorAll('[data-id]');
for(var i=0;i<nodes.length;i++){
   // do something here with nodes[i]
} 
var values = Array.prototype.map.call(nodes, function(e){ return e.dataset.id; });