当我尝试以下操作时:
<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>
它不按我打算的方式工作。我做了一个表单,我需要能够以与我测试的方式类似的方式获取表单数据。
答案 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呢?