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

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

自從我開始學習 DOM 以來已經 2 周了。試圖制作語言切換器。不工作

自從我開始學習 DOM 以來已經 2 周了。試圖制作語言切換器。不工作

白衣非少年 2022-12-29 13:58:47
我目前在 html 中有兩個按鈕:<div>  <button class="choose-lang" id="eng-btn">English</button></div><div>  <button class="choose-lang" id="rus-btn">Русский</button></div>當我點擊 eng-btn 的按鈕時,它應該將“eng”的類切換到 display =“inline”并將“rus”的類切換到 display =“none”;// My html<h2 class="form-heading"><span class="eng">Enter your v-number:</span><span class="rus">Введите ваш номер:</span></h2>我將我的 CSS 文件保持為空,我的意思是我沒有為 css 文件中的 eng 和 rus 類提供任何屬性。我在js文件中寫了以下內容:var engBtn = document.getElementById("eng-btn");engBtn.addEventListener("click", function() {    document.getElementsByClassName("eng").style.display = "inline";    document.getElementsByClassName("rus").style.display = "none";})var rusBtn = document.getElementById("rus-btn");rusBtn.addEventListener("click", function() {    document.getElementsByClassName("rus").style.display = "inline";    document.getElementsByClassName("eng").style.display = "none";})不知道為什么它不起作用
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

getElementsByClassName返回一個集合而不是單個元素,因此 id 沒有 DOM 元素的屬性和方法。


你可以嘗試像這樣迭代:


var engBtn = document.getElementById("eng-btn");

engBtn.addEventListener("click", function() {

    // document.getElementsByClassName("eng").style.display = "inline";

    // document.getElementsByClassName("rus").style.display = "none";


    changeVisibility('rus', 'none');

    changeVisibility('eng', 'inline');

})


var rusBtn = document.getElementById("rus-btn");


rusBtn.addEventListener("click", function() {

    

    changeVisibility('rus', 'inline');

    changeVisibility('eng', 'none');

    // document.getElementsByClassName("rus").style.display = "inline";

    // document.getElementsByClassName("eng").style.display = "none";

}); 



function changeVisibility(className, visibility) {

  const collection = document.getElementsByClassName(className);

  for(let i = 0 ; i < collection.length; i++) {

    collection[i].style.display = visibility;

  }

}


查看完整回答
反對 回復 2022-12-29
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

getElementsByClassName返回一個集合而不是單個元素,因此 id 沒有 DOM 元素的屬性和方法。


你可以嘗試像這樣迭代:


var engBtn = document.getElementById("eng-btn");

engBtn.addEventListener("click", function() {

    // document.getElementsByClassName("eng").style.display = "inline";

    // document.getElementsByClassName("rus").style.display = "none";


    changeVisibility('rus', 'none');

    changeVisibility('eng', 'inline');

})


var rusBtn = document.getElementById("rus-btn");


rusBtn.addEventListener("click", function() {

    

    changeVisibility('rus', 'inline');

    changeVisibility('eng', 'none');

    // document.getElementsByClassName("rus").style.display = "inline";

    // document.getElementsByClassName("eng").style.display = "none";

}); 



function changeVisibility(className, visibility) {

  const collection = document.getElementsByClassName(className);

  for(let i = 0 ; i < collection.length; i++) {

    collection[i].style.display = visibility;

  }

}


查看完整回答
反對 回復 2022-12-29
  • 2 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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