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