在HTMLCollection中设置项的属性

时间:2014-05-25 00:20:17

标签: javascript dom htmlcollection

跳到底部查看问题:

我正忙着将htmlCollections从

中扔回给我
document.getElementById("Id")

document.getElementsByClassName("ClassName")

现在,我一直认为byClassName和TagName是唯一返回HTML集合的,但由于某种原因,这段代码在第二行记录了一个htmlCollection。没有好的

var findPos = function(el) {
  console.log(el)
  var curleft = curtop = 0;
  if (el.offsetParent) {
    do {
      curleft += el.offsetLeft;
      curtop += el.offsetTop;
    } while (el = el.offsetParent);
    el.setAttribute("data-off-top", curtop);
  };
}

var myElement = document.getElementById("myId");
findPos(myElement);

做同样的事情,我不明白为什么。

之前,我有最后两行,我得到了一个HTMLCollection,这对于readonly没有帮助。

var affixElements = document.getElementsByClassName("affixMe");
for (var i = 0; i < affixElements.length; i++) {
  var thisOne = affixElements.item(i);
  findPos(thisOne);
};

我有两个问题:

1)为什么getElementById会返回一个htmlCollection?

我已经检查过该文件,并且没有其他内容与id =“myId”

2)如何设置HTML集合的各个项目中的属性,例如设置偏移函数的数据属性?

0 个答案:

没有答案