請問問什么這種方法不行
? ? ? ? ? <input type="button" id="btn1" value = "全選" >
? ? ? ? ? <input type="button" id="btn2" value = "全不選" >
? ? ? ? ? <p>請輸入您要選擇愛好的序號,序號為1-6:</p>
? ? ? ? ? <input id="wb" name="wb" type="text" >
? ? ? ? ? <input name="ok" type="button" value="確定" onclick = "checkone();">
? ? ? ? </form>
? ? ? ? <script type="text/javascript">
? ? ? ??
? ? window.onload = function(){
? ? ? ? var btn1 = document.getElementById("btn1");
? ? ? ? var btn2 = document.getElementById("btn2");
? ? ? ? var hobby = document.getElementsByName("hobby");
? ? ? ? ? ? for(var i=0;i<=hobby.length;i++){
? ? ? ? ? ? ? ? btn1.onclick = function{
? ? ? ? ? ? ? ? ? ? hobby[i].checked=true;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? btn2.onclick = function{
? ? ? ? ? ? ? ? ? ? hobby[i].checked=false;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? // 任務1 ? ? ? ? ? ?
? ? } ? ?
2016-07-19
1、你為什么要加window.onload = function()這個事件,直接定義一個函數就可以了,window.onload 是當JavaScript寫在head標簽內時才用的。你的代碼是直接寫在body里的,用不上window.load事件。
2、for循環里i<=hobby.length是錯的,正確的應該是i<hobby.length?(js中索引是從0開始的)。
3、?btn1.onclick事件和btn2.onclick的函數應該是放在for循環的外面。比如:
??btn1.onclick = function(){
for(var i=0;i<=hobby.length;i++){
? ? ? ? ? ? ? ? ? ? hobby[i].checked=true;
? ? ? ? ? ? ? ? }
}
你把上面的問題都改了,再試試
2016-07-19
我是這么認為的:onclick()方法只會執行?hobby[i].checked=true;這一段代碼,而
?var btn1 = document.getElementById("btn1");
? ? ? ? var btn2 = document.getElementById("btn2");
? ? ? ? var hobby = document.getElementsByName("hobby");
? ? ? ? ? ? for(var i=0;i<=hobby.length;i++){
這一段代碼是網頁加載就執行,onclick里面根本執行不了循環語句