最后一個(gè)函數(shù)為什么運(yùn)行不了呢
<!--<!DOCTYPE HTML>-->
<!--<html>-->
<!--<head>-->
? ?<!--<meta http-equiv="Content-Type" content="text/html; charset=gb2312">-->
? ?<!--<title>無(wú)標(biāo)題文檔</title>-->
<!--</head>-->
<!--<body>-->
<!--<form>-->
? ?<!--請(qǐng)選擇你愛(ài)好:<br>-->
? ?<!--<input type="checkbox" name="hobby" id="hobby1"> ?音樂(lè)-->
? ?<!--<input type="checkbox" name="hobby" id="hobby2"> ?登山-->
? ?<!--<input type="checkbox" name="hobby" id="hobby3"> ?游泳-->
? ?<!--<input type="checkbox" name="hobby" id="hobby4"> ?閱讀-->
? ?<!--<input type="checkbox" name="hobby" id="hobby5"> ?打球-->
? ?<!--<input type="checkbox" name="hobby" id="hobby6"> ?跑步 <br>-->
? ?<!--<input type="button" value = "全選" onclick = "checkall();">-->
? ?<!--<input type="button" value = "全不選" onclick = "clearall();">-->
? ?<!--<p>請(qǐng)輸入您要選擇愛(ài)好的序號(hào),序號(hào)為1-6:</p>-->
? ?<!--<input id="wb" name="wb" type="text" >-->
? ?<!--<input name="ok" type="button" value="確定" onclick = "checkone();">-->
<!--</form>-->
<!--<script type="text/javascript">-->
? ?<!--function checkall(){-->
? ? ? ?<!--var hobby = document.getElementsByTagName("input");-->
? ? ? ?<!--for(var i=0;i<hobby.length;i++){-->
? ? ? ? ? ?<!--hobby[i].checked=true;-->
? ? ? ?<!--}-->
? ? ? ?<!--// 任務(wù)1-->
? ?<!--}-->
? ?<!--function clearall(){-->
? ? ? ?<!--var hobby = document.getElementsByName("hobby");-->
? ? ? ?<!--//alert(hobby.length);-->
? ? ? ?<!--for(var i=0;i<hobby.length;i++){-->
? ? ? ? ? ?<!--hobby[i].checked=false;-->
? ? ? ?<!--}-->
? ? ? ?<!--// 任務(wù)2-->
? ?<!--}-->
? ?<!--function checkone(){-->
? ? ? ?<!--clearall();-->
? ? ? <!--var hobby = document.getElementsByName("hobby");-->
? ? ? ?<!--var j=document.getElementById("wb").value;-->
? ? ? ?<!--for(var i=0;i<j.length;i++){-->
? ? ? ? ? ? <!--if(j.charAt(i)>6 || j.charAt(i)<1){-->
? ? ? ? ? ? ? ?<!--alert("越界,請(qǐng)重新輸入!");-->
? ? ? ? ? ? ? ?<!--document.getElementById("wb").value="";-->
? ? ? ? ? ?<!--}-->
? ? ? ?<!--}-->
? ? ? ?<!--for(var n=0;n<j.length;n++){-->
? ? ? ? ? ?<!--hobby[(j.charAt(n))-1].checked=true;-->
? ? ? ?<!--}-->
? ?<!--}-->
<!--</script>-->
<!--</body>-->
<!--</html>-->
<!DOCTYPE HTML>
<html>
<head>
? ?<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
? ?<title>無(wú)標(biāo)題文檔</title>
</head>
<body>
<form>
? ?請(qǐng)選擇你愛(ài)好:<br>
? ?<input type="checkbox" name="hobby" id="hobby1"> ?音樂(lè)
? ?<input type="checkbox" name="hobby" id="hobby2"> ?登山
? ?<input type="checkbox" name="hobby" id="hobby3"> ?游泳
? ?<input type="checkbox" name="hobby" id="hobby4"> ?閱讀
? ?<input type="checkbox" name="hobby" id="hobby5"> ?打球
? ?<input type="checkbox" name="hobby" id="hobby6"> ?跑步 <br>
? ?<input type="button" value = "全選" onclick = "checkall();">
? ?<input type="button" value = "全不選" onclick = "clearall();">
? ?<p>請(qǐng)輸入您要選擇愛(ài)好的序號(hào),序號(hào)為1-6:</p>
? ?<input id="wb" name="wb" type="text" >
? ?<input name="ok" type="button" value="確定" onclick = "checkone();">
</form>
<script type="text/javascript">
? ?function checkall(){
? ? ? ?var hobby = document.getElementsByTagName("input");
? ? ? ?for (var i=0;i<hobby.length;i++){
? ? ? ? ? ?hobby[i].checked=true;
? ? ? ?}
? ? ? ?// 任務(wù)1
? ?}
? ?function clearall(){
? ? ? ?var hobby = document.getElementsByName("hobby");
? ? ? ?for(var i=0;i<hobby.length;i++){
? ? ? ? ? ?hobby[i].checked=false;
? ? ? ?}
? ? ? ?// 任務(wù)2
? ?}
? ?function checkone(){
? ? ? //任務(wù)三
? ? ? ?var hobby=document.getElementsByName("hobby");
? ? ? ?var j=document.getElementById("wb").value;
? ? ? ?for (var i=0;i<j.length;j++){
? ? ? ? ? ?if (j.charAt(i)>6||(j.charAt(i)<1)){
? ? ? ? ? ? ? ?alert("越界 請(qǐng)輸入");
? ? ? ? ? ? ? ?document.getElementById("wb").value="";
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?for (var n=0;n<j.length;n++){
? ? ? ? ? ?hobby[(j.charAt(n))-1].checked=true;
? ? ? ?}
? ?}
</script>
</body>
</html>
2016-09-14
??function checkone(){
????????//獲取到name='hobby'的對(duì)象數(shù)組,長(zhǎng)度為6
? ? ? ?var hobby=document.getElementsByName("hobby");
???? ?//獲取到ID為wb的對(duì)象的值 就是你在地址中輸入的值
? ? ? ?var j=document.getElementById("wb").value;
????????
? ? ? //判斷j值是否合法
? ? ? ?if (j>6||j<1){
? ? ? ? ? ? ? ?alert("越界 請(qǐng)輸入");
? ? ? ? ? ? ? ?document.getElementById("wb").value="";
? ? ? ? }else{
????????????????//獲取j對(duì)應(yīng)的對(duì)象數(shù)組的下標(biāo)
????????????????var k = j-1;
????????????????hobby[k].checked = true;
????????}
? ?}
很不幸 你的j.length 是從頭錯(cuò)到尾巴的,j本身只是一個(gè)字符串,你的length只能獲取到j(luò)本身這個(gè)字符串的長(zhǎng)度,
如果你輸入的是300,j就是300,j的長(zhǎng)度就是3; ? ?你循環(huán)的毫無(wú)意義。
更加優(yōu)雅的代碼如下
? ? ? ? function checkone(){
? ? ? ? ? ? var j=document.getElementById("wb").value;
? ? ? ? ? ? if(j>0&&j<7){
? ? ? ? ? ? ? ? var hobbyId = 'hobby'+j;
? ? ? ? ? ? ? ? var theOne ?= document.getElementById(hobbyId);
? ? ? ? ? ? ? ? theOne.checked = true;
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? alert('please input the right number');
? ? ? ? ? ? }
? ? ? ? }
2016-09-12
(1)?if(j.charAt(i)>6 || j.charAt(i)<1){} ? //這里應(yīng)該是輸入的一段字符串,比如123。然后用字符串的下標(biāo),循環(huán)從0開始遍歷,返回來(lái)單個(gè)字符串。只要這個(gè)字符是1和6之間就不會(huì)彈出越界框框。
?(2) ? for(var n=0;n<j.length;n++){????
? ? ? ?hobby[(j.charAt(n))-1].checked=true;} // 這里charAt(n)返回的單個(gè)字符,然后減1是這個(gè)字符的下標(biāo),比如123字符串中的1字符下標(biāo)是0.
2016-09-11
嗯。。我盡我的能力回答吧。
clearall();//沒(méi)有找到相關(guān)明確的意思
? ?var hobby = document.getElementsByName("hobby");//通過(guò)“hobby”來(lái)獲取元素,并返回包含所有“hobby”名字的元素的數(shù)組
? ?var j=document.getElementById("wb").value;//獲取id為wb文本框的值
? ?for(var i=0;i<j.length;i++){
? ? ? ?if(j.charAt(i)>6 || j.charAt(i)<1){//charat()函數(shù)用于返回指定位置的字符,所以這里沒(méi)弄明白是怎么回事。因?yàn)楦鶕?jù)上下文,j的值很有可能只是一個(gè)數(shù)字,而不是一個(gè)字符串。我認(rèn)為這里應(yīng)該是讓用戶輸入一個(gè)1——6的數(shù)字,如果這個(gè)數(shù)字超過(guò)了1-6的范圍,那么則提示越界,需要用戶重新輸入
? ? ? ? ? ?alert("越界,請(qǐng)重新輸入!");
? ? ? ? ? ?document.getElementById("wb").value="";//反之,獲取wb文本框中的值
? ? ? ?}
? ?}
? ?
? ?for(var n=0;n<j.length;n++){
? ? ? ?hobby[(j.charAt(n))-1].checked=true;
不知道是不是這樣,僅供參考。我也是新手。