getElementById和getElementsByClassName之间的区别

时间:2017-05-05 04:45:07

标签: javascript html node.js

我写了一个javascript声明:

var n=document.getElementById("image");

这段代码不起作用。但是当我将id改为class和语句时:

var n=document.getElementsByClassName("image");

它完美无缺。任何人都可以解释为什么我不能用id ...

先谢谢

注意:当我说工作时我的意思是变量' n'有一些价值存储。

PS:对于那些希望对这个问题竖起大拇指的人们......我要求你在这样做之前解释原因......寒意

2 个答案:

答案 0 :(得分:0)

确保在使用getElementById时,页面中只有1个ID实例,因为它只获得第一个匹配项。虽然getElementByClassName获取该类的所有元素。

ID - 页面中必须是唯一的

类 - 可以尽可能多地使用

Demo

答案 1 :(得分:0)

在Html中,有两种方法可以识别html标记的特定实例与一组html元素。我们以div为例。

如果我们在U​​I的某个地方有一个导航栏,它将成为我们唯一的导航栏,那么我们将使用html id来实现它。

如果我们说了一组内容,那么我们会将所有显示内容的div标记为class

例如,假设我们有一个单独的导航栏和3个内容框。 html看起来像:

<div id="navbar">stuff</div>
<div class="content"> content stuff</div>
<div class="content"> content stuff</div>
<div class="content"> content stuff</div>

在JS方面,如果我们使用document.getElementById(),我们只能定位navbar,因为只有1个html id标记。但是,如果我们想要获得意味着使用document.getElementByClassName()的内容div组,并且因为存在多个类,我们将返回类content的那些html div的数组。

所以它确实取决于你的HTML。

相关问题