如何使用document.getElementByName和getElementByTag?

时间:2011-10-19 05:21:27

标签: javascript

 document.getElementById('frmMain').elements
我可以像这样使用

document.getElementByName('frmMain').elements 

document.getElementBytag('table').elements`

6 个答案:

答案 0 :(得分:22)




一个很好的选择是


在上述所有情况中,.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)

  1. getElementsByName()方法访问所有元素 指定的名称。 此方法返回作为数组的元素集合。
  2. getElementsByTagName()方法访问所有元素 指定的标记名。 此方法返回作为数组的元素集合。
  3. 访问具有指定ID的第一个元素。 此方法仅返回单个元素。
  4. 例如:

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