4

我不知道它叫什么,但我知道有一种方法可以在没有getElementsByTagName. 它返回相同的东西,但它更短,我在我的项目中使用了很多标签。我在说的是document.frames[x]and document.images[x],但是还有其他元素,比如document.b[x]or document.a[x]。看到 asdocument.images<img>标签不同,似乎如果有更多它们的名称也会不同。使用此方法和/或有接受的标签列表时,有人会碰巧知道它的名称吗?谢谢。

PS 请不要建议使用诸如 jQuery 之类的库。这个项目旨在成为一种学习体验,所以我想使用常规的 JavaScript。

4

3 回答 3

6

正如答案中其他地方所提到的,这实际上与 JavaScript 没有任何关系,这些是 DOM 属性和方法,可以通过 DOM的 JavaScript 语言绑定访问。

关于寻址元素,例如document.frames[x]注意这是不正确的,应该是window.frames[x])和document.images[x]- 这些是文档对象/HTML 集合,W3C 标准仅包括images, applets, links, formsanchors

因此,除非我完全找错了地方,从我从DOM-1DOM-2规范中可以看出,似乎没有任何方法可以像你记得的那样通过标签名称任意寻址元素。

更新

MDC 上HTMLCollection的条目更容易理解;它读到

下面列出了返回 HTMLCollection 的每个项目(及其特定属性): 文档(图像、小程序、链接、表单、锚点);形式(元素);地图(区域);表(行,tBodies);表格部分(行);行(单元格)

于 2011-04-24T05:08:16.333 回答
5

除了创建这些速记的其他 JavaScript 库之外,我不知道该语言中内置了任何内容。将其映射到您自己的速记将是微不足道的:

var $ = document.getElementsByTagName;

// you can then use it like so:
$('SPAN').// and so on

除此之外,没有内置的类似数组的访问文档中的所有标签:

http://www.javascriptkit.com/jsref/document.shtml

于 2011-04-24T04:22:55.943 回答
2

创建自己的参考,

document.tag = document.getElementsByTagName;

或包装,

function tag(name) {
    return document.getElementsByTagName(name);
}

我所知道的支持按元素名称查询的唯一 API 是,

DOM

getElementsByTagName

CSS 选择器

查询选择器全部

XPath

评估

E4X

(仅限 Mozilla,还不能与 DOM 一起使用)

于 2011-04-24T04:44:25.143 回答