Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 从具有相同类的多个div元素中获取多个.attr值_Javascript_Jquery - Fatal编程技术网

Javascript 从具有相同类的多个div元素中获取多个.attr值

Javascript 从具有相同类的多个div元素中获取多个.attr值,javascript,jquery,Javascript,Jquery,我试图从具有相同类的多个div元素中获取多个数据属性值,例如: '<div class="col-2">Category: <span class="title-cat tempcat" data-category="' + catId + '">'+ categoryName +'</span></div>' 它通过了tempcat:154154当有两行时,它应该说154174你每次都得到相同的项目,因为attr抓住了第一行。您需要选择不同的内

我试图从具有相同类的多个div元素中获取多个数据属性值,例如:

'<div class="col-2">Category: <span class="title-cat tempcat" data-category="' + catId + '">'+ categoryName +'</span></div>'

它通过了tempcat:
154154
当有两行时,它应该说
154174
你每次都得到相同的项目,因为
attr
抓住了第一行。您需要选择不同的内容-数组中的项目:

var tempcat = $.map($('.title-cat.tempcat'), function(el) {
    return $(el).attr('data-category');
});

由于
attr
获取第一个项目,因此每次都会获得相同的项目。您需要选择不同的内容-数组中的项目:

var tempcat = $.map($('.title-cat.tempcat'), function(el) {
    return $(el).attr('data-category');
});

这个问题是因为您在
map()
处理程序中选择了所有
.title cat.tempcat
元素,并且对元素集合调用
attr()
只查看集合中的第一个元素

要解决此问题,请使用
this
关键字引用当前元素:

var tempcat=$('.title cat.tempcat').map(函数(){
返回$(this).data('category');
}).get();
控制台日志(tempcat)

类别:#154

类别:#157
问题是因为您在
map()
处理程序中选择了所有
.title cat.tempcat
元素,并且对元素集合调用
attr()
只查看集合中的第一个元素

要解决此问题,请使用
this
关键字引用当前元素:

var tempcat=$('.title cat.tempcat').map(函数(){
返回$(this).data('category');
}).get();
控制台日志(tempcat)

类别:#154

Category:#157
方法
.attr()
将检索jQuery对象中第一个元素的属性,因此需要对集合中的每个项使用该方法。下面是一个单行程序,它将创建一个属性数组:
$('.title cat.tempcat').map((u,el)=>$(el.attr('data-category')).get()
方法将检索jQuery对象中第一个元素的属性,因此需要对集合中的每个项使用该方法。下面是一个单行程序,它将创建一个属性数组:
$('.title cat.tempcat').map(('.el,el)=>$(el.attr('data-category')).get()
这将返回
tempcat:[对象对象]
我的坏-我忘记添加
.get()
。我更新了答案并为您添加了一个示例这是返回的
tempcat:[object object]
My bad-我忘记添加
.get()
。我更新了答案并为youTHANKS添加了一个示例!太好了,我得等7分钟才能给答案谢谢谢谢!很好,我要等7分钟才能给你答案谢谢