跳到底部查看问题:
我正忙着将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集合的各个项目中的属性,例如设置偏移函数的数据属性?