亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請教一個關于任務三的問題

? ? ? ? function checkone(){

? ? ? ? ? ? var j=document.getElementById("wb").value;

? ? ? ? ? ? var hobby=document.getElementsByName("hobby");

? ? ? ? ? ? for(var i=0;i<j.length;i++){

? ? ? ? ? ? ? ? if(parseInt(j.charAt(i))>6){

? ? ? ? ? ? ? ? alert("選擇1-6的數");

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? for(var k=0;i<j.length;k++){

? ? ? ? ? ? ? ? hobby[parseInt(j.charAt(k))-1].checked=true; ? ?

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

這個代碼,我如果在文本框中輸入“8”,會彈出警告,如果我輸入“128”,雖然會彈出警告,但依然會勾選第一個和第二個復選框,我如果希望只要有一個數字超出6,就不會有任何復選框勾選改如何做

正在回答

2 回答

function checkone() {
? ?var j = document.getElementById("wb").value;
? ?var hobby = document.getElementsByName("hobby");
? ?var str = j.split("");
? ?function sortnum(a,b){return b-a;}
? ?str.sort(sortnum);
? ?if(str[0]>6){alert("選擇1-6的數");}
? ?else{
? ? ? ?for(var i=0;i<str.length;i++)
? ? ? ?{
? ? ? ? ? ?hobby[str[i]].checked=true;
? ? ? ?}
? ?}
}

0 回復 有任何疑惑可以回復我~
#1

kuban

hobby[str[i]-1].checked=true;這里修正一下
2016-05-25 回復 有任何疑惑可以回復我~
#2

秋水流到冰 提問者

多謝解惑,對循環的理解理解又深了些
2016-05-25 回復 有任何疑惑可以回復我~
#3

慕粉3274123 回復 kuban

我想問一下,上面的代碼中,如果我在輸入框輸入,“02”這個數據,為什么不會出現程序錯誤呢?你前面把該數據分成["0","2"],在執行for循環時,應該還有”hobby[str[0]-1].check=true“這個判斷吧。我試過輸出這個數據,是underfined。為什么沒有影響程序執行呢?
2016-07-15 回復 有任何疑惑可以回復我~
#4

kuban 回復 慕粉3274123

上面的小例子邏輯確實不嚴謹,只是單純演示提問者想要的效果的實現思路。02這個數據是會錯誤中斷的,假如你在for循環中的hobby[str[i]-1].checked=true;后面添加一個alert("OK"),你會發現在單輸入小于1的數時,是沒有彈出信息的,這說明程序確實會中斷執行
2016-07-21 回復 有任何疑惑可以回復我~
#5

kuban 回復 慕粉3274123

而“02”這個數據你沒感覺到被中斷執行時因為我對input中的數字做了降序排序,會先執行hobby[str[2]-1].check=true,這樣看起來是正確的沒有影響到正常數據的執行,但實際上馬上”hobby[str[0]-1].check=true就中斷了,只是中斷前正常數據已經都得到了執行,所以結果上看是正確的。
2016-07-21 回復 有任何疑惑可以回復我~
#6

慕粉3274123 回復 kuban

謝謝你的解答,雖然還是不太明白,要等自己好好思考一下。在這個課程看到你很多的身影,你應該是傳中中的大神吧。。。什么都懂。。
2016-07-21 回復 有任何疑惑可以回復我~
#7

kuban 回復 慕粉3274123

不是,我只是喜歡多看點不同角度產生的問題來對我掌握的知識進行查漏,如果有問題我不知道答案,那肯定是我知識點有空白的部分,每個人思路不一樣,我想不到的問題會被別人提出來,多看看不同的錯誤有助于加深理解
2016-07-21 回復 有任何疑惑可以回復我~
#8

慕粉3274123 回復 kuban

感覺JS這些內容很難學啊,很多東西都理解不了,在編程的時候,缺少思路,那該如何提升自己?如果有問題,可以直接問你嗎?
2016-07-21 回復 有任何疑惑可以回復我~
#9

kuban 回復 慕粉3274123

見得例子多了就有思路了,多看吧,課程問題最快的答復肯定是課程下面的提問,我只是有空才會上來看看站內信
2016-07-21 回復 有任何疑惑可以回復我~
#10

慕粉3274123 回復 kuban

那也足夠了,先謝謝了。
2016-07-21 回復 有任何疑惑可以回復我~
查看7條回復

不知道你為什么要使用charAt(),不用就好了

function checkone() {
? ?var j = document.getElementById("wb").value;
? ?var hobby = document.getElementsByName("hobby");
? ?for (var i = 0; i < j.length; i++) {
? ? ? ?if (parseInt(j) > 6) {
? ? ? ? ? ?alert("選擇1-6的數");
? ? ? ? ? ?break;
? ? ? ?}
? ? ? ?hobby[parseInt(j) - 1].checked = true;
? ?}
}

0 回復 有任何疑惑可以回復我~
#1

秋水流到冰 提問者

我的意思是我在文本框中一口氣輸入比如“124”可以一次勾選1 2 4三個復選框 我后來想了下 是不是可以把這個字符串拆成數組在升序排列,只要比較最大值就可以
2016-05-25 回復 有任何疑惑可以回復我~
#2

kuban 回復 秋水流到冰 提問者

想法很有意思,按照你的想法重新看了你代碼給我看蒙了,不知道你有沒有發現,你代碼目前實現的效果是碰巧借助了報錯停止實現了正確效果的,128可選12,812呢?肯定不會選12,因為報錯了,其實128也報錯了,只不過執行完了正確選擇才報錯停止的。按你想法改動的正確代碼下面給你貼出來
2016-05-25 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

請教一個關于任務三的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號