按标签名称缩写获取元素?

时间:2011-04-24 04:13:47

标签: javascript dom tags element getelementsbytagname

我不知道它叫什么,但我知道有一种方法可以在没有getElementsByTagName的情况下根据标签获取元素。它返回相同的东西,但它更短,我在我的项目中使用了很多标签。我所说的是document.frames[x]document.images[x],但有其他元素,例如document.b[x]document.a[x]。看作document.images<img>标记不同,似乎还有更多,它们的名称也不同。当使用这种方法和/或有一个接受的标签列表时,有人会碰巧知道它的名称吗?感谢。

P.S。请不要建议使用jQuery等库。这个项目是一个学习体验,所以我想使用常规的JavaScript。

3 个答案:

答案 0 :(得分:6)

正如答案中其他地方所述,这与JavaScript没有任何关系,这些是通过the JavaScript language binding for the DOM可访问的DOM属性和方法。

参考document.frames[x]请注意,这是不正确的,应该是window.frames[x] )和document.images[x]等地址元素 - 这些是{{3 W3C标准仅包含images, applets, links, formsanchors

因此,除非我从Document Object/HTML CollectionsDOM-1规范中所知的完全错误的位置,否则似乎没有任何方法可以通过标记名称任意寻址元素你记得做的方式。

<强>更新

DOM-2更容易理解;它读取

  

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

答案 1 :(得分:5)

除了创建这些简写的其他JavaScript库之外,我不知道该语言中是否包含任何内容。将此映射到您自己的简写上将是微不足道的:

var $ = document.getElementsByTagName;

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

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

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

答案 2 :(得分:2)

创建自己的参考,

document.tag = document.getElementsByTagName;

或包装,

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

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

<强> DOM

getElementsByTagName

CSS选择器

querySelectorAll

<强>的XPath

evaluate

<强> E4X

(仅限mozilla,但尚未与DOM一起使用)