Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JS/jQuery从HTML标记获取所有属性_Javascript_Jquery - Fatal编程技术网

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

Javascript 使用JS/jQuery从HTML标记获取所有属性,javascript,jquery,Javascript,Jquery,我想将Html元素中的所有属性放入一个数组中:就像我有一个jQuery对象,它的Html如下所示: 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 .c

我想将Html元素中的所有属性放入一个数组中:就像我有一个jQuery对象,它的Html如下所示:

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' }

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

另一种方法是使用jquery实现,但是如何实现呢?属性的数量和名称是通用的

谢谢


顺便说一句:我无法使用document.getelementbyid或类似的东西访问元素。

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

假设您有几个跨度:

<span name="test1" data-message="test1">test1</span>
<span name="test2" data-message="test2" class="xzy">test2</span>
<span ...>...</span>
test1
测试2
...
您可以创建名称-值对数组,如下所示:

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' }
var elems=document.querySelectorAll(“[数据消息]”)
,attrs=[];
对于(变量i=0;i
这里有一个


能否显示HTML的其余部分?很可能有某种方法可以选择元素…“这里描述的xml解析器”-何处。。?他指的是复制的问题。。顺便提一下如果你完整地阅读你的复制问题,而不是仅仅复制它,你会看到,提供的答案正是你想要的。。。