15

我最近在 douglas crockford 演示文稿中遇到了这两种 dom 元素检索方法,但无法理解这两种方法之间的区别。

document.getElementsByTagName()

document.getElementsByName()

有人可以向我解释一下。

视频的链接是http://www.youtube.com/watch?v=Fv9qT9joc0M

4

3 回答 3

26

假设你有这个 HTML:

<input name="test" class="cssclassname">

你会得到它

document.getElementsByTagName('input')

或者

document.getElementsByName('test')

或者

document.getElementsByClassName('cssclassname')

此外,您可以调用getElementsByTagName文档以外的元素。例如以下是允许的,

document.getElementsById('foo').getElementsByTagName('bar')

getElementsByName只能叫上document

备注:

  • JavaScript 区分大小写,您不能像在问题中那样编写函数
  • 这些函数不仅返回元素,还返回一个活动的nodeList,所以如果你确定它是好的,你必须迭代结果或者取第一个:document.getElementsByTagName('input')[0]
  • MDN 是 JavaScript 方法的一个很好的文档。您应该阅读getElementsByTagNamegetElementsByName
于 2013-05-21T07:16:29.830 回答
4
<div name="alpha"></div>
<div name="beta"></div>

var divs = document.getElementsByTagName("div");  // Selects both divs.
var alpha = document.GetElementsByName("alpha");   // Selects the first div.
var beta = document.GetElementsByName("beta");     // Selects the second div.
于 2013-05-21T07:17:55.633 回答
0

希望我能帮助你,请检查这个

<input type="checkbox" name="johnsmith" id="one">

在这种情况下,input 是 TagName,name 是这个名字,id 是特殊的唯一标识。

让我解释一个更好的方法,
“id”是你的身份证,只有一个人可以持有这张身份证(id);
“name”是你的名字,但在美国有不止一个人使用这个名字,即 john smith(name)。
“输入”是你的类别(TagName),4example human。
我希望你现在明白了。祝你好运。

于 2017-02-17T21:08:19.160 回答