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

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

關于index 和重復for循環的代替問題還有背景設置能不能統一?下有完整截圖(灰色框)

問題1* 錯誤寫法: as.style.backgroundColor="#fff";? 這樣統一把a標簽設置背景顏色為啥不行?這樣寫又有效果好奇怪 for(var i=0; i<as.length; i++){
??????????? as[i].style.backgroundColor="#fff";
????????????? }
? 問2: title.innerHTML = as[index].innerHTML;? 里as[index]呆表什么?沒看見申明為啥也有效果

問3:keyup事件的38 , 40,13里每個里面都有設置背景顏色,要循環一遍,能有更好的辦法優化嗎?謝謝回答

正在回答

2 回答

as是個數組,也就是對象,不能確定到具體元素上,給一個對象設置背景色顯然是不成立的,而as[i]已經具體到了某個變量,這個變量所表示的就是某個具體的元素,給某個元素設置背景色是合理的

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

慕仙5237505 提問者

哦,問題是1:我沒有把它轉成數組,哪里代表他是數組了呢? 2:if(evt.keyCode==13){ //title.indexHTML = this.innerHTML; 這里為啥不能用this呢?
2017-11-03 回復 有任何疑惑可以回復我~
#2

qq_會長大的幸福_4 回復 慕仙5237505 提問者

1. 你的as使用ElementsByTagName取到了,這塊取到的直接就是個數組 2.this一般都用在事件中,所指代的是出發事件的元素,你這里寫在if語句中,最外面的出發事件是document,所以this指代的是document 還有你下邊也有一處用了this,那個是正確的,因為觸發事件就是個元素,你可以想想為什么下邊那個是成功的
2017-11-03 回復 有任何疑惑可以回復我~
#3

慕仙5237505 提問者 回復 qq_會長大的幸福_4

好的,非常感謝,貌似懂了
2017-11-03 回復 有任何疑惑可以回復我~
  1. ????as取到的是一個數組,給一個數組添加背景色是行不通的

    而as[i]代表的確實具體的元素,這樣自然就可以加上背景色了

  2. ? ? index在這里帶表的是索引,按下鍵盤上下會隨之進行減加;也就代表了所選中的li,在代碼中也有聲明,在最開始的地方

  3. ? ? 循環的部分可以封裝起來,用的時候只需要調用就好了

  4. 優化部分

    ? ? ?個人認為在設置背景顏色時可以在css中設置一個激活狀態的樣式,當某個li被激活(也就是處于被選中狀態)的時候添加這個激活狀態樣式的class,然后在每次執行鍵盤上下鍵之前清空所有li的class就好了,這樣就不會顯得麻煩每次都要設置背景顏色

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

慕仙5237505 提問者

你幫我看看這個1: as.style.backgroundColor="#fff"; 標題1這樣寫統一設置為啥不行? // 2* for(var i=0; i<as.length; i++){ // as[i].style.backgroundColor="#fff"; // }標題2這樣寫又可以了,為啥一定要循環呢
2017-11-03 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
DOM事件探秘
  • 參與學習       99534    人
  • 解答問題       1305    個

DOM事件?本課程會通過實例來給小伙伴們講解如何使用這些事件

進入課程

關于index 和重復for循環的代替問題還有背景設置能不能統一?下有完整截圖(灰色框)

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

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

幫助反饋 APP下載

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

公眾號

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