如何使用document.getElementByName和getElementByTag?

问题描述 投票:15回答:6
 document.getElementById('frmMain').elements

我可以使用这样

document.getElementByName('frmMain').elements 

要么

document.getElementBytag('table').elements`
javascript
6个回答
22
投票



一个伟大的选择是


在所有的上述情况,.elements可以通过例如.querySelectorAll("[type=text]")获得所有文本元素被替换


8
投票

如果在文档中不存在这样的元件getElementById返回任一个的提及一个元素具有id相匹配的参数,或为空。

getElementsByName()(注意多个元件)返回具有匹配参数的名称的元件的(可能为空)的HTMLCollection。需要注意的是IE对待名和id属性和属性同样的事情,所以getElementsByName将返回也ID匹配的元素。

getElementsByTagName类似,但返回NodeList。这一切都没有在相关规范。


0
投票

我假设你正在谈论getElementById()返回一个元素的引用,而其他人返回一个节点列表。刚下标为其他节点列表,例如document.getElementBytag('table')[4]

此外,elements只是一个形式(HTMLFormElement)的属性,而不是table比如在你的榜样。


0
投票

这是getElementsByName()getElementsByTagName() - 注意“的”中“元素”,表明这两个函数会返回一个元素,即节点列表,你会像访问数组列表。需要注意的是第二个函数与“变量名”而不是“标签”结束。

即使函数只返回一个元素,它仍然会在长度为1的节点列表。所以:

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

0
投票

如果您已经为您的标识和名称的属性给予相同的文字名称,你可以给喜欢document.getElementByName('frmMain')[index]其他明智所需的对象错误,如果你在你的页面只有一个表,你可以使用document.getElementBytag('table')[index]将come.And。

编辑:

您可以根据您的形式代替指标,如果它的第一种形式的地方0索引。


-1
投票
  1. getElementsByName()方法访问具有指定名称的所有元素。此方法返回是一个数组元素的集合。
  2. 该方法getElementsByTagName()访问与指定的标记的所有元素。此方法返回是一个数组元素的集合。
  3. 访问与指定的ID的第一个元素。此方法返回仅单个元件。

例如:

<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元素,并显示它的值属性。

<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的提取。

© www.soinside.com 2019 - 2024. All rights reserved.