我正在尝试从具有相同类的多个div元素中获取多个数据属性值,例如:
'<div class="col-2">Category: <span class="title-cat tempcat" data-category="' + catId + '">'+ categoryName +'</span></div>'
我正在尝试获取data-category
属性,但是这里的问题是这行有多个实例,所以我想建立一个我随后用AJAX传递的所有data-categories
的列表
到目前为止,我建立了一个列表并继续在列表中插入第一行值:
var tempcat = $.map($('.title-cat.tempcat'), function() {
return $('.title-cat.tempcat').attr('data-category');
});
传递tempcat:154, 154
当有两行时应该说154, 174
答案 0 :(得分:1)
每次都会获得相同的项目,因为attr
抓住了第一个项目。您需要选择不同的东西 - 数组中的项目:
var tempcat = $.map($('.title-cat.tempcat'), function(el) {
return $(el).attr('data-category');
});
答案 1 :(得分:1)
问题是因为您正在选择.title-cat.tempcat
处理程序中的所有map()
元素,并且对元素集合调用attr()
只会查看集合中的第一个元素。< / p>
要解决此问题,请使用this
关键字引用当前元素:
var tempcat = $('.title-cat.tempcat').map(function() {
return $(this).data('category');
}).get();
console.log(tempcat);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="col-2">Category: <span class="title-cat tempcat" data-category="154">#154</span></div>
<div class="col-2">Category: <span class="title-cat tempcat" data-category="157">#157</span></div>
&#13;