javascript解析不起作用的文档。GetElementsByCassName
我在页面的源代码中有以下代码:javascript解析不起作用的文档。GetElementsByCassName,javascript,dom,Javascript,Dom,我在页面的源代码中有以下代码: <a data-toggle="dropdown" class="user" href="#">Tom</a> 但是username变量未定义,代码有什么问题? 我不想使用jQuery。与document.getElementById不同,document.getElementsByClassName方法返回具有指定类的元素数组。在这种情况下,您可能需要选择其中的第一个 var username = document.getElement
<a data-toggle="dropdown" class="user" href="#">Tom</a>
但是username变量未定义,代码有什么问题?
我不想使用jQuery。与
document.getElementById
不同,document.getElementsByClassName
方法返回具有指定类的元素数组。在这种情况下,您可能需要选择其中的第一个
var username = document.getElementsByClassName("user")[0].innerHTML;
alert(username);
您错过了
[0]
与文档不同。getElementById
,文档。getElementsByClassName
方法返回具有指定类的元素数组。在这种情况下,您可能需要选择其中的第一个
var username = document.getElementsByClassName("user")[0].innerHTML;
alert(username);
您错过了
[0]
您刚刚错过了获取第一个元素的[0]
var username = document.getElementsByClassName("user")[0].innerHTML;
您刚刚错过了获取第一个元素的[0]
var username = document.getElementsByClassName("user")[0].innerHTML;
查看DOM方法的名称:getElement*s*ByClassName。它是复数形式,因此可以而且很可能会返回多个元素。
这些元素将存储在类似数组的对象中(节点列表的实例) 但实际上,
getElementsByClassName
并没有得到很好的支持,最好使用querySelectorAll
(与的支持进行比较,尤其是在IE中)
此外,使用这些选择器,您可以避免查询整个DOM:
var username = document.querySelector('.user');//gets just one
注:有关
的详细信息
请注意,FireFox的某些版本将返回一个对象,该对象不是名为
NodeList
,而是Mozilla自己的DOM API超集,它扩展了NodeList
构造函数。我记不起那个对象叫什么ATM,但我会在记住DOM方法的名称后再联系的:getElement*s*ByClassName。它是复数形式,因此可以而且很可能会返回多个元素。这些元素将存储在类似数组的对象中(节点列表的实例) 但实际上,
getElementsByClassName
并没有得到很好的支持,最好使用querySelectorAll
(与的支持进行比较,尤其是在IE中)
此外,使用这些选择器,您可以避免查询整个DOM:
var username = document.querySelector('.user');//gets just one
注:有关
的详细信息
请注意,FireFox的某些版本将返回一个对象,该对象不是名为
NodeList
,而是Mozilla自己的DOM API超集,它扩展了NodeList
构造函数。我记不起那个物体叫什么ATM,但我记得我不想用jQ来做这样的事情后,我会再联系的。。。这表明你愿意付出努力,自己学习使用JS和(笨重的)DOM API,而不是依赖一个经常被滥用的工具+1,因为你不想使用jQ来做这样的事情。。。这表明您愿意付出努力,自己学习使用JS和(笨重的)DOM API,而不是依赖经常被滥用的工具