Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
537 views
in Technique[技术] by (71.8m points)

javascript - document.getElementsByClassName doesn't work

function getHeight(element) {
    console.log(element);
    var offsetHeight = document.getElementsByClassName(element).offsetHeight;
    console.log(offsetHeight);
}
getHeight("card-1");

Although it correctly prints the element to the console with just document.getElementsByClassName(element) but I can't get to the offsetHeight property, even with document.getElementsByClassName(element)[0].offsetHeight

Do I have to run a loop?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

document.getElementsByClassName(element) returns a HTMLCollection of elements. The collection doesn' t have an offsetHeight property, each element in the collection has.

Now if you want to get the offsetHeight of the first matched element you can simply use
document.getElementsByClassName(element)[0].offsetHeight

If you wanted the max or min offsetHeight of all the matched elements you'd need to iterate over the collection.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...