document.getElementById('frmMain').elements
我可以像这样使用
document.getElementByName('frmMain').elements
或
document.getElementBytag('table').elements`
答案 0 :(得分:22)
name
属性,但如果您要使用getElementBy Id 一个很好的选择是
All
- 它是一个集合。 [0]将获得页面上第一个表单的元素。 “表单”是一个有效的CSS选择器在上述所有情况中,.elements
可以替换为例如.querySelectorAll("[type=text]")
以获取所有文本元素
答案 1 :(得分:8)
getElementById返回对id与参数匹配的元素的引用,如果文档中不存在此类元素,则返回null。
getElementsByName()(注意复数元素)返回名称与参数匹配的元素的HTMLCollection(可能为空)。请注意,IE将名称和 id 属性和属性视为同一内容,因此 getElementsByName 将返回匹配 id 的元素他们也是。
getElementsByTagName类似但返回NodeList。这些都在相关规范中。
答案 2 :(得分:0)
我假设您正在讨论getElementById()
返回对元素的引用,而其他人返回节点列表。只需下标其他人的节点列表,例如document.getElementBytag('table')[4]
。
此外,elements
只是表单(HTMLFormElement
)的属性,而不是示例中的table
。
答案 3 :(得分:0)
如果您为Id和Name属性指定了相同的文本名称,则可以提供类似document.getElementByName('frmMain')[index]
其他明智对象所需的错误。如果您的页面中只有一个表,则可以使用{{ 1}}。
编辑:
如果索引的第一个表单为0,则可以根据表单替换索引。
答案 4 :(得分:0)
它是getElementsByName()
和getElementsByTagName()
- 注意“Elements”中的“s”,表示两个函数都返回一个元素列表,即NodeList,您将像数组一样访问它们。请注意,第二个函数以“TagName”而非“Tag”结尾。
即使函数只返回一个元素,它仍将在长度为1的NodeList中。所以:
var els = document.getElementsByName('frmMain');
// els.length will be the number of elements returned
// els[0] will be the first element returned
// els[1] the second, etc.
假设您的表单是页面上的第一个(或唯一)表单,您可以执行此操作:
document.getElementsByName('frmMain')[0].elements
document.getElementsByTagName('table')[0].elements
答案 5 :(得分:-1)
getElementsByName()
方法访问所有元素
指定的名称。
此方法返回作为数组的元素集合。getElementsByTagName()
方法访问所有元素
指定的标记名。
此方法返回作为数组的元素集合。例如:
<script type="text/javascript">
function getElements() {
var x=document.getElementById("y");
alert(x.value);
}
</script>
</head>
<body>
<input name="x" id="y" type="text" size="20" /><br />
这将返回单个HTML元素并显示它的value属性。
<script type="text/javascript">
function getElements() {
var x=document.getElementsByName("x");
alert(x.length);
}
</script>
</head>
<body>
<input name="x" id="y" type="text" size="20" /><br />
<input name="x" id="y" type="text" size="20" /><br />
这将返回一个HTML元素数组和与name属性匹配的元素数。
从w3schools中提取。