JavaScript getElementsByTagName方法

时间:2015-06-28 05:14:05

标签: javascript methods

好的,所以我试图从一本书中理解这个例子的逻辑,因为我找不到任何支持这种语法的文档,但它似乎有效。

现在,下面的示例将从更大的代码段中删除,但出于我想要解释/理解的目的,我只展示相关部分。

如果您需要查看完整示例,可以在此处下载:

http://javascriptbook.com/code/c06/

这是使用变异事件的例子。

它所做的只是计算这个特定ul元素中的所有li元素并显示该数字。

HTML

<ul id="list">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
<h2><span id="counter">Number of Items</span></h2>

JavaScript

var listitems = list.getElementsByTagName('li').length;
var counter = document.getElementById('counter');
counter.innerHTML = listitems;

这是本书中的例子,它可以正常工作。我无法理解它,因为我从未见过getElementsByTagName方法的id名称。我知道你可以使用document.getElementsByTagName和element.getElementsByTagName但这似乎是使用id名称,除非我在这里遗漏了一些东西。 “list”既不是文档也不是元素名称。代码中对它的唯一引用是ul元素的id名称。

我知道这样做的唯一方法是......

var list = document.getElementById('list');
listitems = list.getElementsByTagName('li').length;
var counter = document.getElementById('counter');
counter.innerHTML = listitems;

或者如果你想要一行......

var listitems = document.getElementById('list').getElementsByTagName('li').length;
var counter = document.getElementById('counter');
counter.innerHTML = listitems;

......而且这两项都有效。但是上面的原始例子也是如此,我不知道为什么。我找不到任何支持或解释为什么以及如何使用带有getElementsByTagName方法的id名称的方法。

有人可以在这里提供一些解释吗?欣赏它。

0 个答案:

没有答案