如何从多个元素中获取属性值,而不仅仅是第一个匹配项

Abh*_*bhi 2 javascript jquery attributes

如何从以下代码行中获取所有data-id

HTML:

<div data-id='1' class="userId">
    <span> user name-1 </span>
</div>
<div data-id='2' class="userId">
    <span>user name-2</span>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var userIds = $('.userId').attr("data-id");
Run Code Online (Sandbox Code Playgroud)

但它只返回1

gdo*_*ica 7

var userIds = $('.userId').map(function(){
    return $(this).data('id');
}).get();
Run Code Online (Sandbox Code Playgroud)

它是如何工作的?

它抓取所有userId类元素,然后它将执行一个函数(with map),它将返回data-id使用的属性data,然后用`get获取结果.

为什么你的代码不起作用?

var userIds = $('.userId').attr("data-id");
Run Code Online (Sandbox Code Playgroud)

attr仅适用于集合中的第一个匹配元素,因此它仅返回第一个元素id- 1.

attr: 获取匹配元素集中第一个元素的属性值...