Javascript 从具有相同类的多个div元素中获取多个.attr值
我试图从具有相同类的多个div元素中获取多个数据属性值,例如: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 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分钟才能给你答案谢谢