Mik*_* HT 8 html forms elements
我有以下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>
Run Code Online (Sandbox Code Playgroud)
在all-checkbox.js文件中,我有以下几行:
...
var form = document.getElementById('interests');
var elements = form.elements;
...
Run Code Online (Sandbox Code Playgroud)
当我加载页面并检查调试器(Firefox)中的elements变量时,我看到它是一个长度为5的数组.我的理解是form.elements将返回表单的所有元素.调试器显示元素的以下值:
0: <fieldset>
1: <input#all>
2: <input>
3: <input>
4: <input>
Run Code Online (Sandbox Code Playgroud)
我认为传奇元素也是一个表单元素,但显然在这里不算这样.
任何人都可以开导我吗?
getElementById返回一个HTMLFormElement对象。legend不是其elements属性中列出的元素。
至于为什么……/耸肩。我似乎找不到任何背景故事。如果我不得不猜测,我会说因为它不是表单的实际控制元素,也许权力感觉意味着HTMLFORMElement.elements“控制”元素。但同样,这只是猜测。