JavaScript:getElementsByTagName()创建的数组;t返回其元素的长度?

JavaScript:getElementsByTagName()创建的数组;t返回其元素的长度?,javascript,arrays,getelementsbytagname,Javascript,Arrays,Getelementsbytagname,我有一个由getElementsByTagName()方法创建的数组,我不明白当我询问它的元素长度时为什么会得到undefined 在代码中,所讨论的数组被称为b,还有一个数组被称为theArray,它被用作我期望从数组b中得到的行为的示例 var str=document.getElementById(“str”); var b=document.getElementsByTagName(“b”); var h1=document.getElementsByTagName(“h1”); va

我有一个由
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=“红色”;
b[1]。style.color=“黄色”;
b[2].style.color=“绿色”;
var theArray=[“再见”,“世界”];
h1[0]。innerHTML=b[0]。长度;
h2[0]。innerHTML=theArray[0]。长度
H1
氢

他很可能被征召参加周四对意大利的比赛。
你得到了两个不同的长度。在
b[0].length的情况下,您试图获取HTML元素的长度
b.length
会给你3,因为3个元素是匹配的。使用数组[0].length
可以得到有效字符串的长度

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

不。它们都不一样。

var theArray=[“再见”,“世界”]
var b=document.getElementsByTagName(“b”)
这里b是一个与数组几乎相同的数组,具有一些额外的功能

但是HTMLCollection中包含的单个元素不是可以调用字符串函数或方法的简单字符串,而是更具体的对象

你可以说这类似于java;在java中,可以使用
length
属性查找数组的长度,对于字符串,可以使用
length()
方法,但不能在类对象(如
employee.length)上这样做(除非您自己在类中实现了该函数)。这与
b[0]完全相似你在做什么

现在,您可以猜测需要做什么来修复此问题。您需要获取包含html标记内容的字符串表示形式的属性。您可以在该标记的HtmleElement对象上调用它(它是该标记的obj表示,sorta“handle”到该标记)

var str=document.getElementById(“str”);
var b=document.getElementsByTagName(“b”);
var h1=document.getElementsByTagName(“h1”);
var h2=document.getElementsByTagName(“h2”);
b[0].style.color=“红色”;
b[1]。style.color=“黄色”;
b[2].style.color=“绿色”;
var theArray=[“再见”,“世界”];
h1[0]。innerHTML=b[0]。innerHTML.length;
h2[0]。innerHTML=theArray[0]。长度
H1
氢

他很可能被征召参加周四对意大利的比赛。
不。他们两人不一样。

var theArray=[“再见”,“世界”]
var b=document.getElementsByTagName(“b”)
这里b是一个与数组几乎相同的数组,具有一些额外的功能

但是HTMLCollection中包含的单个元素不是可以调用字符串函数或方法的简单字符串,而是更具体的对象

你可以说这类似于java;在java中,可以使用
length
属性查找数组的长度,对于字符串,可以使用
length()
方法,但不能在类对象(如
employee.length)上这样做(除非您自己在类中实现了该函数)。这与
b[0]完全相似你在做什么

现在,您可以猜测需要做什么来修复此问题。您需要获取包含html标记内容的字符串表示形式的属性。您可以在该标记的HtmleElement对象上调用它(它是该标记的obj表示,sorta“handle”到该标记)

var str=document.getElementById(“str”);
var b=document.getElementsByTagName(“b”);
var h1=document.getElementsByTagName(“h1”);
var h2=document.getElementsByTagName(“h2”);
b[0].style.color=“红色”;
b[1]。style.color=“黄色”;
b[2].style.color=“绿色”;
var theArray=[“再见”,“世界”];
h1[0]。innerHTML=b[0]。innerHTML.length;
h2[0]。innerHTML=theArray[0]。长度
H1
氢

他很可能被征召参加周四对意大利的比赛。
任何
文档。getSomethingBySomething
返回一个对象,该对象与数组不同。对象可以由
{“property”:“value”,“next property”:“next value”}
写入,也可以由
对象.property
对象[“property”]
对象[“property”]=value
对象.property=value
写入或读取

同时,数组由
array[index]=value
array[index]
写入或读取对象和数组之间的主要区别是数组由数字引用,而对象由属性名(字符串)引用。要获取对象的长度只需使用
object.keys(b).length
,因为
object.keys
以数组格式返回对象的所有属性名,该数组支持
.length


任何你想知道的都在这里:

任何
文档。getSomethingBySomething
返回一个对象,它与数组不同。A.