Javascript - 从元素中按名称获取元素?

时间:2011-07-07 03:13:07

标签: javascript html

当我尝试以下操作时:

<html>
    <body>
        <script type="text/javascript">
            window.onload = function() {
                var test1 = document.getElementsByName("div1");
                alert(test1[0]);
                var test2 = test1[0].getElementsByName("div2");
                alert(test2[0]);
            }
        </script>
        <div name="div1">
            <div name="div2">
            </div>
        </div>
    </body>
</html>

它不按我打算的方式工作。我做了一个表单,我需要能够以与我测试的方式类似的方式获取表单数据。

3 个答案:

答案 0 :(得分:3)

只应从getElementsByName元素调用

document

var test2 = document.getElementsByName('div2');

更重要的是,您真的应该只对表单元素使用name属性,而不是div s。

如果您想要一个更容易让您在DOM元素中进行搜索的API,请考虑使用jQuery:

<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script>
      $(function() {
          var div1 = $('#div1');
          var div2 = div1.find('#div2');
      });
    </script>
  </head>
  <body>
    <div id="div1">
      <div id="div2"></div>
    </div>
  </body>
</html>

当然,由于id必须在文档范围内是唯一的,因此通常没有理由在另一个元素中搜索特定ID。因此,对于那些简单的东西,你真的不需要像jQuery这样的任何东西。

答案 1 :(得分:1)

如果我没记错的话,只有document(HTMLDocument)有getElementsByName方法。 DOM元素没有该方法,您不能通过将它们用作上下文来应用它。

答案 2 :(得分:0)

div的属性中没有name。为什么不使用id呢?