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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

elem.classList.toggle 不適用于所有元素

elem.classList.toggle 不適用于所有元素

慕碼人8056858 2023-07-14 10:17:41
我有一些 HTML 代碼,如下所示:<html><head></head><body><span class="cls1">test</span><span class="cls1">test</span><span class="cls1">test</span><span class="cls1">test</span><span class="cls1">test</span><span class="cls1">test</span><span class="cls1">test</span><style>  .cls1 {    color: red;  }  </style></body></html>然后我想使用一些 JavaScript 代碼來切換cls1這些元素的類。我輸入了這些行。輸出也如下:> for (elem of document.getElementsByClassName("cls1")) { console.log(elem); elem.classList.toggle("cls1") }<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65false> for (elem of document.getElementsByClassName("cls1")) { console.log(elem); elem.classList.toggle("cls1") }<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65false> for (elem of document.getElementsByClassName("cls1")) { console.log(elem); elem.classList.toggle("cls1") }<span class="cls1">debugger eval code:1:65false> for (elem of document.getElementsByClassName("cls1")) { console.log(elem); elem.classList.add("cls1") }undefined> for (elem of document.getElementsByTagName("span")) { console.log(elem); elem.classList.add("cls1") }<span class="">debugger eval code:1:63<span class="">debugger eval code:1:63<span class="">debugger eval code:1:63<span class="">debugger eval code:1:63<span class="">debugger eval code:1:63<span class="">debugger eval code:1:63<span class="">debugger eval code:1:63undefined> for (elem of document.getElementsByClassName("cls1")) { console.log(elem); }<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65<span class="cls1">debugger eval code:1:65undefined我認為錯誤的是,document.getElementsByClassName可以找到所有七個元素,但elem.classList.toggle只適用于其中的一半。這對我來說是一個荒謬的問題。這里出了什么問題?
查看完整描述

1 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

.querySelectorAll()改為使用,

與往常一樣,返回的集合是實時的,這意味著它始終反映以調用該函數的元素為根的 DOM 樹的當前狀態。當與名稱匹配的新元素添加到子樹時,它們會立即出現在集合中。同樣,如果與名稱不匹配的現有元素已調整其類集以使其匹配,則它會立即出現在集合中。

反之亦然;當元素不再與名稱集匹配時,它們會立即從集合中刪除。

let elements = document.querySelectorAll(".cls1");

for(let elem of elements) {

? console.log(elem);

? elem.classList.toggle("cls1");

}

.cls1 {

? color: red;

}??

<span class="cls1">test</span>

<span class="cls1">test</span>

<span class="cls1">test</span>

<span class="cls1">test</span>

<span class="cls1">test</span>

<span class="cls1">test</span>

<span class="cls1">test</span>


查看完整回答
反對 回復 2023-07-14
  • 1 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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