从 jQuery 集合中获取每个元素的属性值,放入数组中

Posted

技术标签:

【中文标题】从 jQuery 集合中获取每个元素的属性值,放入数组中【英文标题】:Get the attribute value of each element from a jQuery set, into an array 【发布时间】:2011-07-16 17:18:18 【问题描述】:

如何获取与 jQuery 选择器匹配的所有元素的所有属性(例如 href)?

【问题讨论】:

【参考方案1】:

大概是这样的吧?

var ids = [];

$('.myClass').each(function () 
  ids.push($(this).attr('id')); // ids.push(this.id) would work as well.
);

【讨论】:

你为什么要创建一个 jQuery 对象 ($(this).attr('id')) 而不是简单的原生 this.id @David Thomas - 习惯的力量可能比其他任何东西都重要,但我会修改答案。 @DavidThomas: this.id 仅适用于 id 属性,因为 this 是 DOM 注释。对于一般情况,例如href,您需要this.getAttribute('href')$(this).attr('href')【参考方案2】:

类似

var idArray = $(".someClass").map(function()
    return this.id
).get().join(',');

Working demo

【讨论】:

【参考方案3】:

使用 Underscore.js 的更简单的解决方案

例如:获取所有链接文本谁的父母有班级someClass

_.pluck($('.someClass').find('a'), 'text');

Working fiddle

【讨论】:

【参考方案4】:

使用 ES6 arrow functions 的单行代码,使用 jQuery .map():

const ids = $('a.someClass').map((i, el) => el.getAttribute('href')).get();

console.log(ids);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="test1" class="someClass">t1</a>
<a href="test2" class="someClass">t2</a>
<a href="test3" class="someClass">t3</a>

【讨论】:

以上是关于从 jQuery 集合中获取每个元素的属性值,放入数组中的主要内容,如果未能解决你的问题,请参考以下文章

jQuery DOM

jQuery的属性与样式之.val()

jquery怎么获取一个元素的class值

使用 Javascript/jQuery 从 HTML 元素中获取所有属性

JQuery属性与样式——.val()和增加样式.addClass()

jquery怎么获取style里面的属性值