【发布时间】:2016-02-11 04:07:32
【问题描述】:
我已经阅读了this 和this,但我试图弄清楚document.getELementbyClassName 是如何工作的,以便我可以将其作为练习重新实现。显然,我不想只是模仿源代码;我的版本可能会更慢,更粗糙。我有几个问题,但感谢您提供超出我的问题的任何见解。
-
当在文档对象上调用时,会搜索整个文档,包括根节点。
它如何搜索整个文档?这是否使用某种正则表达式?
document.getElementsByClassName('red test');这应该返回同时具有red和test类的所有元素。但是不是每个元素都只有one class吗?或者这是否意味着类似red orange test?在数组中返回元素是否正确?像
[element1, element2, ...]这样的东西。我不确定“类数组”是什么意思。
注意:我是 JavaScript 新手,对 HTML、CSS 和 jQuery 的经验更少。
【问题讨论】:
-
document.getElementsByClassName是用本机代码编写的,如果你正在编写一个 polyfill,它的内部工作方式并不是很有趣,因为无论如何你可能不得不使用getElementsByTagName,你只需要知道它是做什么的,它通过类名获取元素 -
另外,元素可以有多个类
-
元素可以有 0 到多个类。
<p></p>、<p class="a"></p>、<p class="a b c"></p>都是有效的。 -
下面是你如何填充它 -> gist.github.com/eikes/2299607
-
不需要使用正则表达式,因为它操作的是DOM,而不是HTML源代码。
标签: javascript html document