我想将Html元素中的所有属性放入数组中:就像我有一个jQuery对象,其中html看起来像这样:
< span name =" test"消息=" TEST2"> < /跨度>
现在一种方法是使用这里描述的xml解析器,但后来我需要知道如何获取我的对象的html代码。
另一种方式是用jquery制作它,但是如何?属性和名称的数量是通用的。
由于
顺便说一下:我无法使用document.getelementbyid或类似内容访问该元素。
答案 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