我是C#的初学者,最近开始研究JavaScript并遇到了这种情况。我试图按标签名称获取元素
var element = document.getElementsByTagName('script');
哪个不起作用。在互联网上进行研究后我发现了这个
var element = document.getElementsByTagName('script')[0];
哪个有效。我的问题是方括号的目的是什么?
答案 0 :(得分:7)
var elements = document.getElementsByTagName('script');
这里的关键词是元素
此方法可以返回名为NodeList的类数组对象中的零个,一个或多个元素。
使用[0]是为了找到该列表中的第一个元素。
var element = document.getElementsByTagName('script')[0];
如果NodeList
中没有元素,则元素将为undefined
,以下代码可以检查该元素。
如果你有一个值,你不确定为什么它的表现方式是这样的:
console.log(document.getElementsByTagName('script'))
并且您已经能够看到它不是返回的单个元素。
答案 1 :(得分:5)
getElementsByTagName()
返回节点列表,[0]
表示节点列表中的第一个元素
答案 2 :(得分:3)
函数getElementsByTagName
返回类型为NodeList
的“类似数组”对象(行为类似于数组的对象)。
要访问NodeList中getElementsByTagName
的结果中的第一项,您可以使用[0]
。 (请注意,索引是从0开始的。)
请务必首先检查length
:
var elements = document.getElementsByTagName('script')
if (elements.length > 0)
{
var firstElement = elements[0];
}
答案 3 :(得分:3)
方括号是访问数组特定索引的标准方法。
示例:
var arr = [ "one", "two" , "three" ];
console.log( arr[ 1 ] ); // ouputs "two"
getElementsByTagName
函数能够返回NodeList
中具有指定标记的多个元素,因此使用方括号可以指定要访问的元素。
NodeList
不是数组,但访问它包含的元素与数组相同。使用[0]
表示您要访问NodeList
中的第一个元素。