gpt4 book ai didi

JavaScript:由 getElementsByTagName() 创建的数组不会返回其元素的长度?

转载 作者:行者123 更新时间:2023-11-28 14:38:33 25 4
gpt4 key购买 nike

我有一个由 getElementsByTagName() 方法创建的数组,但我不明白为什么当我询问其元素长度时会得到 undefined

在代码中,相关数组称为 b,还有一个名为 theArray 的数组,它用作我期望从数组中获得的行为的示例 b.

var str = document.getElementById("str");
var b = document.getElementsByTagName("b");
var h1 = document.getElementsByTagName("h1");
var h2 = document.getElementsByTagName("h2");

b[0].style.color = "red";
b[1].style.color = "yellow";
b[2].style.color = "green";

var theArray = ["Goodbye", "World"];

h1[0].innerHTML = b[0].length;
h2[0].innerHTML = theArray[0].length;
<h1>H1</h1>
<h2>H2</h2>

<span id="str">He is <b>likely</b> to be <b>called</b> up for Thursday's <b>match</b> against Italy.</span>

更新:我不明白的是数组 b 和 theArray 之间的真正区别是什么以及为什么它们的行为不同。我想,我明白 @jens 将它们称为两个不同的东西的意思,也就是说,一个是纯 JavaScript,另一个是由 HTML 元素生成的,但我仍然不明白为什么它们的行为不同。我的意思是,最后它们都只是保存值的数组,不是吗?有人可以详细说明一下吗?谢谢!

最佳答案

您正在获取两个不同事物的长度。在 b[0].length 的情况下,您试图获取 HTML 元素的长度。 b.length 会给你 3,因为 3 个元素被匹配。使用 theArray[0].length 您可以获得有效字符串的长度。

关于JavaScript:由 getElementsByTagName() 创建的数组不会返回其元素的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49042032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com