【问题标题】:Get element Attributes using jQuery使用 jQuery 获取元素属性
【发布时间】:2010-08-06 19:14:31
【问题描述】:

以下是我的 HTML

HTML

<div Attr1 = "val1" Attr2 = "val2" Attr3 = "val3"  >
       Hello !!
</div>

我想提取一个元素的所有属性(及其对应的values)。 如何使用 jQuery 做到这一点?

我尝试了类似下面的方法,

$(function() {
   for(var i in $('div')[0].attributes) {
     console.log($('div')[0].attributes)[i] , $('div')[0].attributes)[i].value);
   }
});

还有其他可能的方法吗?

【问题讨论】:

  • 重复:我认为您正在寻找使用 jQuery 对元素属性进行迭代 - stackoverflow.com/questions/2224933/…
  • 另外,假设它们不只是示例,您的 HTML 将无法验证,因为这些属性无效,这是不可取的。如果你真的需要这些属性 Attr1, Attr2, Attr3 查看 HTML5 data- 属性:html5doctor.com/html5-custom-data-attributes
  • @Richard 这些属性不是真正的属性,我同意你的观点,这些是无效的。在这里我想表达我的问题,所以我使用了一些虚拟的attr's。听起来很傻??
  • 不,这很有意义;我只是很彻底。

标签: javascript jquery jquery-selectors


【解决方案1】:

您正在寻找getAttributes jQuery 插件。

一个简单而小(490字节 缩小)插件来检索所有 元素的属性(如果 你必须使用你的标记 无法控制)。它返回 一个可以用作 .attr() 的参数

示例:

console.log($.getAttributes('div'), true);

更新:

From jQuery Docs:

每当你使用 jQuery 的 each-method 时, 您的回调的上下文设置为 一个 DOM 元素。情况也是如此 用于事件处理程序。

你能做到的意思:

var attrs = $("div")[0].attributes;

for(var i = 0; i < attrs.length; i++) {
  alert(attrs[i].nodeName + " => " + attrs[i].nodeValue);
}

【讨论】:

  • 感谢您的链接,但我不愿意使用插件来执行此操作。还有办法吗?
  • 你为什么不想使用插件?至少,打开插件,看看他们是怎么做到的。
  • @Avinash:我还是建议你使用这个插件,还要注意它只有 490 字节。
  • 您不想使用插件似乎很奇怪。插件只是 jquery 代码。你可以看看插件源代码,看看他们是怎么做的。
  • @Soviut , @Gregg 你们见过这个特殊的插件功能吗,它只生成events 的属性和值。学习 a(new) 东西有什么问题吗(尽管代码已经可用)?不知道为什么您的 cmets 得到了投票。似乎这里的 ppl 已经习惯于为每件事添加插件,而不是实现自己的想法。如果这伤害了我很抱歉:(
猜你喜欢
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多