为什么checkbox的checked属性在chrome中总是显示未定义

代码如下:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function SelectAll() {
            var book = document.all("book");
            var sela = document.getElementById("sela");
            for(var x=0;x<=book.length;x++){
                book[x].checked=sela.checked;
            }

        }
        function ShowName() {
            var book = document.all("book");
            var str = "选中的书名:";
            for(var x=0;x<=book.length;x++){
                if(book[x].checked){
                    str += book[x].value+"、";
                }
            }
            alert(str);
        }
    </script>
</head>
<body>
    <input type="checkbox" name="book" id="book" value="机器学习00" checked>机器学习00 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习01">机器学习01 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习02">机器学习02 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习03">机器学习03 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习04">机器学习04 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习05">机器学习05 &nbsp
    <br>
    <input type="checkbox" name="book" id="book" value="机器学习06">机器学习06 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习07">机器学习07 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习08">机器学习08 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习09">机器学习09 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习10">机器学习10 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习11">机器学习11 &nbsp
    <br>
    <input type="checkbox" name="book" id="book" value="机器学习12">机器学习12 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习13">机器学习13 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习14">机器学习14 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习15">机器学习15 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习16">机器学习16 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习17">机器学习17 &nbsp
    <br>
    <input type="checkbox" name="book" id="book" value="机器学习18">机器学习18 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习19">机器学习19 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习20">机器学习20 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习21">机器学习21 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习22">机器学习22 &nbsp
    <input type="checkbox" name="book" id="book" value="机器学习23">机器学习23 &nbsp
    <br><br>
    <input type="checkbox" name="sela" id="sela" onclick="SelectAll()">全选<br>
    <button onclick="ShowName()">显示结果</button>
</body>
</html>

每次点击“显示结果”,都无法进行,求大神解答

阅读 5k
2 个回答

x<=book.length改为x<book.length

像楼上说的,你获取的book个数已经超出了,0...39 =40的时候就已经是undefinel

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题