首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从jQuery对象中的元素获取属性值的数组

如何从jQuery对象中的元素获取属性值的数组
EN

Stack Overflow用户
提问于 2012-03-11 00:17:14
回答 3查看 20.8K关注 0票数 9

我在我自己的类的元素中使用了一个自定义属性。我尝试为类的所有元素返回自定义属性的值。

我使用jQuery按类查找元素,然后jQuery将对象放在一个数组中。

代码语言:javascript
运行
复制
var tabs = $('li.tab_item');

现在我已经将对象放入数组中,我想返回数组中所有成员的自定义属性的值。

如何做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-11 00:21:22

代码语言:javascript
运行
复制
var tab_attribs = $('li.tab_item').map(function () {
  return $(this).attr("custom_attribute");
});

这将为您提供一个自定义属性值的数组。当然,您可以更传统地这样做:

代码语言:javascript
运行
复制
var tab_attribs = [];
$('li.tab_item').each(function () {
  tab_attribs.push( $(this).attr("custom_attribute") );
});

无论如何,您可能应该利用HTML5提供的data-*属性:

代码语言:javascript
运行
复制
<li class="tab_item" data-foo="some custom data">

和(参见jQuery data()):

代码语言:javascript
运行
复制
$('li.tab_item').data("foo"); // -> "some custom data"
票数 18
EN

Stack Overflow用户

发布于 2012-03-11 00:21:52

使用.map()

代码语言:javascript
运行
复制
 $("li.tab_item").map(function (){
    return this.getAttribute("myAttribute");
 });

这为您提供了一个包装在jQuery对象中的值数组。如果你想获取数组,调用.get(),即.map(...).get()

顺便说一下,您还可以按属性而不是按类选择元素:

代码语言:javascript
运行
复制
$("[myAttribute]")

这将返回页面上具有myAttribute属性的所有元素。

票数 7
EN

Stack Overflow用户

发布于 2018-05-09 22:04:26

Simple solution (ES6)

代码语言:javascript
运行
复制
Array.from(document.getElementsByClassName('tab_item')).map(item => item.getAttribute('foo'));
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9647968

复制
相关文章

相似问题

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