使用JS / jQuery从HTML标记获取所有属性

时间:2014-09-14 11:45:39

标签: javascript jquery

我想将Html元素中的所有属性放入数组中:就像我有一个jQuery对象,其中html看起来像这样:

  

< span name =" test"消息=" TEST2">   < /跨度>

现在一种方法是使用这里描述的xml解析器,但后来我需要知道如何获取我的对象的html代码。

另一种方式是用jquery制作它,但是如何?属性和名称的数量是通用的。

由于

顺便说一下:我无法使用document.getelementbyid或类似内容访问该元素。

1 个答案:

答案 0 :(得分:0)

您可以使用[element].attributes从html元素中检索属性对象数组。如果要将属性映射到具有名称 - 值对的对象数组,可能是这样的想法:

假设你有几个跨度:

<span name="test1" data-message="test1">test1</span>
<span name="test2" data-message="test2" class="xzy">test2</span>
<span ...>...</span>

您可以创建一个名称 - 值对数组,如下所示:

var elems = document.querySelectorAll('[data-message]')
   ,attrs = [];

for (var i=0; i < elems.length; i+=1) {
    var attrobj = {nodeName: elems[i].nodeName, nodeIndex: i};
    [].slice
      .call(elems[i].attributes)
      .map(function(v){ this[v.name] = v.value; return v; }, attrobj);
    attrs.push(attrobj);
}
// first element of attrs (attrs[0]):
// {nodeName: 'SPAN', nodeIndex: 0, name: 'test1', data-message: 'test1' }

这是jsFiddle

See also ...