Javascript 设置HTMLCollection中项的属性
跳到底部查看问题: 我正在经历一段与htmlCollections的地狱般的时光,这些htmlCollections是从Javascript 设置HTMLCollection中项的属性,javascript,dom,htmlcollection,Javascript,Dom,Htmlcollection,跳到底部查看问题: 我正在经历一段与htmlCollections的地狱般的时光,这些htmlCollections是从 document.getElementById("Id") 及 现在,我一直认为byClassName和TagName是唯一返回HTML集合的,但是出于某种原因,这段代码在第二行记录了一个htmlCollection。不好 var findPos = function(el) { console.log(el) var curleft = curtop = 0;
document.getElementById("Id")
及
现在,我一直认为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,它不是只读的
var affixElements = document.getElementsByClassName("affixMe");
for (var i = 0; i < affixElements.length; i++) {
var thisOne = affixElements.item(i);
findPos(thisOne);
};
var affixElements=document.getElementsByClassName(“affixMe”);
对于(变量i=0;i
我有两个问题:
1) 为什么getElementById会返回htmlCollection
我已经检查了文档,没有其他id为“myId”的文档
2) 如何在HTML集合的各个项目中设置属性,例如设置偏移函数的数据属性?
getElementById
不会返回HTMLCollection
,您的观察结果一定是错误的。“如何在HTML集合的各个项目中设置属性”简单地使用括号符号或.item()
访问元素,就像您已经在做的那样,并调用元素上的setAttribute
。
var affixElements = document.getElementsByClassName("affixMe");
for (var i = 0; i < affixElements.length; i++) {
var thisOne = affixElements.item(i);
findPos(thisOne);
};