对象数组子属性

时间:2015-07-24 19:22:04

标签: javascript jquery html

嘿伙计们,我最近开始开发一个来自DOM的所有div标签的自动识别器。

我想获取他们的属性,比如offsetWidth,offsetLeft,...当我尝试显示变量时,控制台返回。

我的代码如下:

var elements = [];

    elements.push(document.querySelectorAll('body > div'));
    console.log(elements);

控制台返回:

[NodeList[3]]
0: NodeList[3]
0: div
1: div
2: div
length: 3
__proto__: NodeList
length: 1
__proto__: Array[0]

HTML:

<div style="left:40px;top:10px;position:absolute">
        <img src="assets/images/text1.png" />
    </div>
    <div style="left:200px;top:88px;position:absolute">
        <img src="assets/images/text2.png" />
    </div>
    <div style="left:85px;top:166px;position:absolute">
        <img src="assets/images/text3.png" />
    </div>

我的问题是:

我如何使用我的div访问数组,这样我就可以得到它的长度,它的整个属性(如offsetLeft)如果控制台中的扩展div显示x,y,naturalHeight等许多属性......

修改

对不起,我忘了提,代码应该是PURE JS!抱歉添加了错误的jQuery标签......

2 个答案:

答案 0 :(得分:0)

您实际上正在启动一个数组并将querySelector中的元素推送到它。相反,您可以直接分配querySelector

的结果
var elements = document.querySelectorAll('body > div');
console.log(elements);

答案 1 :(得分:0)

首先,如果您可以直接声明并使用元素初始化它,为什么要将.push()与数组一起使用:

 var elements = document.querySelectorAll('body > div');

然后,对于每个元素,您将需要使用.attributes来获取所有属性:

 for(elem in elements) {
     console.dit(elem.attributes);
 };