首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从多个元素获取属性值,而不仅仅是第一次匹配

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

Stack Overflow用户
提问于 2013-02-07 16:55:44
回答 2查看 1.4K关注 0票数 2

如何从以下代码行获取所有数据id

HTML:

代码语言:javascript
复制
<div data-id='1' class="userId">
    <span> user name-1 </span>
</div>
<div data-id='2' class="userId">
    <span>user name-2</span>
</div>

javascript:

代码语言:javascript
复制
var userIds = $('.userId').attr("data-id");

但是它只返回1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-07 16:57:14

代码语言:javascript
复制
var userIds = $('.userId').map(function(){
    return $(this).data('id');
}).get();

它是如何工作的?

它获取所有userId类元素,然后执行一个函数(使用map),该函数将使用data返回data-id属性,然后使用“get”获取结果。

为什么你的代码不能工作?

代码语言:javascript
复制
var userIds = $('.userId').attr("data-id");

attr只在集合中的第一个匹配元素上工作,因此它只返回第一个元素id- 1

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

票数 7
EN

Stack Overflow用户

发布于 2013-02-07 16:59:44

代码语言:javascript
复制
var ar = [];
$('div[data-id]').each( function() {
    ar.push($(this).data('id'));
});

...should做了,但我没有测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14756585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档