2011-07-15 40 views
1

为什么document.forms[0]返回一些东西(页面上的第一个表单),但document.getElementById("thediv").forms[0]不返回任何内容?为什么不document.getElementById(“thediv”).forms [0]返回任何元素?

Example JSFiddle

在一个更复杂的页面,我期望能够通过指定的ID来缩小浏览器的搜索范围为form元素。

+0

为什么不给你有兴趣在自己的ID的形式,然后就可以直接通过document.getElementById找到相关的表格形式ID。我对你的问题的猜测是,该文件有一个表格数组,但个别的div没有。 – jfriend00

+0

@ jfriend00 - 有时候这肯定是一种选择,但在这种情况下,我无法更改客户端的标记。有了这个问题,我试图理解为什么一种方法有效,而另一种则不行。 ;) – KatieK

回答

2

formsdocument的财产。 document.getElementById是一个返回HTMLElement对象的函数。这不具有称为表单的属性。看看jQuery,如果你想更多的逻辑JavaScript。

2

因为DOM元素对象only the document object上没有这样的属性forms

表单仍然是同一页面内的表单,不管它们在文档树中的位置。如果您需要根据某个父元素获取页面上的一部分表单,则可能需要尝试像jQuery这样的库。

2
document.getElementById('thediv').getElementsByTagName('form')[0]; 
相关问题