我有以下HTML:
<!DOCTYPE html>
<html>
<head>
<title>JavaScript & jQuery - Chapter 13: Form Enhancement and Validation - Select All Checkboxes</title>
<link rel="stylesheet" href="css/c13.css" />
</head>
<body>
<div class="container login">
<form id="interests" action="/login" method="post">
<div class="one-third column">
<img src="img/logo.png" alt="logo" id="logo" />
</div>
<div class="two-thirds column" id="main">
<fieldset>
<legend>Genres</legend>
<label><input type="checkbox" value="all" id="all">All</label>
<label><input type="checkbox" name="genre" value="animation">Animation</label>
<label><input type="checkbox" name="genre" value="docs">Documentary</label>
<label><input type="checkbox" name="genre" value="shorts">Shorts</label>
</fieldset>
</div><!-- .two-thirds -->
</form>
</div><!-- .container -->
<script src="js/utilities.js"></script>
<script src="js/all-checkboxes.js"></script>
</body>
在all-checkbox.js文件中,我有以下几行:
...
var form = document.getElementById('interests');
var elements = form.elements;
...
当我加载页面并检查调试器(Firefox)中的elements变量时,我看到它是一个长度为5的数组。我的理解是form.elements将返回表单的所有元素。调试器显示元素的以下值:
0: <fieldset>
1: <input#all>
2: <input>
3: <input>
4: <input>
我认为传奇元素也是一个表单元素,但显然在这里不算这样。
任何人都可以开导我吗?
答案 0 :(得分:1)
getElementById
会返回HTMLFormElement个对象。 legend
不是listed element属性中的elements。
至于为什么 ... /耸肩。我似乎无法找到任何背景故事。如果我不得不猜测,我会说,因为它不是表格的实际控制元素,也许权力 - 感觉HTMLFORMElement.elements
意味着“控制”元素。但同样,只是猜测。