使用 JavaScript,我们可以使用以下语法通过 id 获取元素:
var x=document.getElementById("by_id");
我尝试了以下按类获取元素:
var y=document.getElementByClass("by_class");
但是结果报错了:
getElementByClass is not function
如何通过类获取元素?
最佳答案
DOM函数的名字其实是getElementsByClassName
,而不是getElementByClassName
,只是因为页面上不止一个元素可以有同一个类,因此:元素
.
this 的返回值将是一个 NodeList 实例,或者是 NodeList
的超集(FF,例如返回 HTMLCollection
的一个实例)。无论如何:返回值是一个类似数组的对象:
var y = document.getElementsByClassName('foo');
var aNode = y[0];
如果出于某种原因您需要将返回对象作为一个数组,您可以很容易地做到这一点,因为它具有神奇的长度属性:
var arrFromList = Array.prototype.slice.call(y);
//or as per AntonB's comment:
var arrFromList = [].slice.call(y);
作为 yckart建议的 querySelector('.foo')
和 querySelectorAll('.foo')
会更好,因为它们确实得到了更好的支持(93.99% vs 87.24% ),根据 caniuse.com:
关于javascript - 如何通过类名获取元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965956/