使用 JavaScript,我们可以使用以下语法通过 id 获取元素:
var x=document.getElementById("by_id");
我尝试按类获取元素:
var y=document.getElementByClass("by_class");
但它导致了错误:
getElementByClass is not function
如何通过其类获取元素?
使用 JavaScript,我们可以使用以下语法通过 id 获取元素:
var x=document.getElementById("by_id");
我尝试按类获取元素:
var y=document.getElementByClass("by_class");
但它导致了错误:
getElementByClass is not function
如何通过其类获取元素?
DOM 函数的名称实际上是getElementsByClassName
,而不是getElementByClassName
,仅仅是因为页面上的多个元素可以具有相同的类,因此:Elements
。
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);
根据caniuse.com 的说法querySelector('.foo')
,正如yckart 所建议的那样,并且querySelectorAll('.foo')
会更可取,因为它们确实得到了更好的支持(93.99% 对 87.24%):
另一种选择是使用querySelector('.foo')
或querySelectorAll('.foo')
具有比getElementsByClassName
.
您需要使用 document.getElementsByClassName('class_name');
并且不要忘记返回的值是一个元素数组,所以如果你想要第一个使用:
document.getElementsByClassName('class_name')[0]
更新
现在您可以使用:
document.querySelector(".class_name")
获取class_name
CSS 类的第一个元素(null
如果页面上没有元素具有此类名称,则返回)
或者document.querySelectorAll(".class_name")
使用class_name
css类获取元素的NodeList (如果页面上的元素不具有此类名称,则将返回空的NodeList)。
您可以使用
getElementsByClassName
假设您有一些元素并应用了类名“test”,因此,您可以获得如下元素
var tests = document.getElementsByClassName('test');
它返回一个实例NodeList
,或者它的超集:HTMLCollection
(FF)。