Javascript 什么';是getElementById和getElementsByClassName之间的区别
我知道使用Javascript 什么';是getElementById和getElementsByClassName之间的区别,javascript,Javascript,我知道使用getElementsByClassName可能不是正确的方法。例如,下面的代码不能按原样工作?为什么?但是当更改getElementsByClassName(“demo”)ForgetElementById(“demo2”)时可以工作 <!DOCTYPE html> <html> <body> <p>Click the button.</p> <button onclick="myFunction()">Try
getElementsByClassName
可能不是正确的方法。例如,下面的代码不能按原样工作?为什么?但是当更改getElementsByClassName(“demo”)
ForgetElementById(“demo2”)
时可以工作
<!DOCTYPE html>
<html>
<body>
<p>Click the button.</p>
<button onclick="myFunction()">Try it</button>
<p class="demo" id="demo2">anything</p>
<script>
function myFunction() {
var str = "How are you doing today?";
var res = str.split(" ");
document.getElementsByNameClass("demo").innerHTML = res;
}
</script>
</body>
</html>
点击按钮
试试看
任何东西
函数myFunction(){
var str=“你今天过得怎么样?”;
var res=str.split(“”);
document.getElementsByNameClass(“demo”).innerHTML=res;
}
返回一个集合(一个类似于数组的对象),因为可能有多个元素具有该类名集合没有innerHTML
属性。必须使用循环:
var elements = document.getElementsByClassName("demo");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = res;
}
var elements=document.getElementsByClassName(“演示”);
对于(var i=0;i
相反,getElementById
返回单个元素,它可以这样做,因为ID是唯一的
(我假设您的示例中的getElementsByNameClass
是一个打字错误。)getElementById()
用于使用其id
访问DOM元素,getElementsByClassName()
用于使用其类访问元素
您的代码无法工作,因为getElementsByClassName()
返回具有给定类的所有元素的类似数组的对象。您需要访问场景中数组的第一个元素
点击按钮
试试看
任何东西
函数myFunction(){
var str=“你今天过得怎么样?”;
var res=str.split(“”);
document.getElementsByClassName(“demo”)[0].innerHTML=res;
}
因为getElementsByNameClass
(它实际上应该是getElementsByClassName
)返回一个集合,而getElementById
返回一个元素。集合没有innerHTML
属性,设置它没有任何效果。我很惊讶getElementsByNameClass
做了任何事情。OP在75%的问题尝试中拼写正确。一次拼写错误肯定是打字错误。@Vohuman:请在答案部分写下你的答案。你可以在下面找到它。@LightnessRacesinOrbit讽刺?因此,许多问题要么是重复问题,要么是超简单问题。这就是我通常不发布答案的原因。但你是对的,评论可能会掩盖答案。我会考虑这个。它不是一个数组。用修正来更新。在我看来,如果OP只想处理类的第一个实例(为什么是第一个?为什么不是第二个?第三个?),他们应该使用一个ID。但是特定代码段的解决方案要求它是列表的第一个成员(类似数组的对象)。代码段是一个“示例”。在解决一般问题时,将未提及的细节作为要求是不明智的。为什么不使用循环呢?这样做的另一个好处是,当找不到匹配的元素时,不会导致严重的错误消息和中断脚本。