带有类的DOM树元素,它们是全局变量吗?

时间:2016-03-18 00:31:35

标签: javascript html dom

班级如何游泳,为什么不能全球访问?

这是我的HTML代码:

<section id="sports">
        <p class="swim">Swim</p>
        <p id="bike">Bike</p>
        <p>Run</p>
</section>

2 个答案:

答案 0 :(得分:0)

CSS类.swim的节点实际上是全局的,文档中的任何节点也是如此。

您可以在.swim { display: none; };

等CSS中访问它

在Javascript document.querySelectorAll('.swim')[0].style.display = 'none';

或jQuery $('。swim');

以下是演示http://codepen.io/nicholasabrams/pen/zqNaME

答案 1 :(得分:0)

  

班级swim怎么样,为什么不能全局访问?

不,与ID不同,您无法使用其类“全局”(通过window对象)访问元素。原因是那不是规范。

无论如何,这意味着什么?许多元素具有相同的类,那么window.<class>意味着什么?它会是一个阵列吗? HTML可以包含数十个,数百个或数千个具有相同类的元素。

每次元素上的类发生更改时,必须更新所有这些全局对象的速度非常慢。因为你有getElementsByClassNamequerySelector[All]

,所以需要它

顺便说一句,无论如何,通过window对象中的ID访问元素都不是最佳做法。