使用JavaScript,我们可以使用以下语法通过id获取元素:
var x=document.getElementById("by_id");
我尝试以下按类获取元素:
var y=document.getElementByClass("by_class");
但这导致了错误:
getElementByClass is not function
如何按类获取元素?
DOM函数的名称实际上getElementsByClassName不是getElementByClassName,仅仅是因为页面上的多个元素可以具有同一类,因此:Elements。
getElementsByClassName
getElementByClassName
Elements
此方法的返回值将是NodeList实例,或者是NodeList(FF的超集,例如返回的实例HTMLCollection)。无论如何:返回值是一个类似于数组的对象:
NodeList
HTMLCollection
var y = document.getElementsByClassName('foo'); var aNode = y[0];
如果由于某种原因需要返回对象作为数组,则由于其不可思议的length属性,您可以轻松地做到这一点:
var arrFromList = Array.prototype.slice.call(y); //or as per AntonB's comment: var arrFromList = [].slice.call(y);
正如yckart所建议的那样querySelector('.foo'),querySelectorAll('.foo')它将是更可取的,因为根据caniuse.com的确,它们得到了更好的支持(93.99%vs87.24%):
querySelector('.foo')
querySelectorAll('.foo')