为了账号安全,请及时绑定邮箱和手机立即绑定

在切换时更改标签文本

在切换时更改标签文本

慕的地6264312 2022-10-27 15:11:09
我目前在我的浏览器中有一个工作暗模式开关,当我打开时,我的网站变成黑色,当我关闭时,我的网站变成白色。但问题是,我想更改切换按钮旁边的“暗模式”标签,以便在切换关闭时文本更改为“亮模式”,在切换打开时更改为“暗模式”。我该怎么做?这是当前外观的图片(注意:“Dark”这个词根本不会随着开关而改变)HTML 的摘录:<div class="nav-link">     <div class="custom-control custom-switch">       <input type="checkbox" class="custom-control-input" id="darkSwitch" />       <label class="custom-control-label" for="darkSwitch">Dark Mode</label>     </div>     <!-- Javascript For Darkmode Switch -->     <script src="index.js"></script></div>来自javascript的摘录:const darkSwitch = document.getElementById("darkSwitch");function initTheme() {  const e =    null !== localStorage.getItem("darkSwitch") &&    "dark" === localStorage.getItem("darkSwitch");  (darkSwitch.checked = e),    e      ? document.body.setAttribute("data-theme", "dark")      : document.body.removeAttribute("data-theme");}function resetTheme() {  darkSwitch.checked    ? (document.body.setAttribute("data-theme", "dark"),      localStorage.setItem("darkSwitch", "dark"))    : (document.body.removeAttribute("data-theme"),      localStorage.removeItem("darkSwitch"));}window.addEventListener("load", () => {  darkSwitch &&    (initTheme(),    darkSwitch.addEventListener("change", () => {      resetTheme();    }));});CSS的摘录:[data-theme="dark"] {  background-color: #111 !important;  color: #eee;}[data-theme="dark"] .bg-light {  background-color: #333 !important;}[data-theme="dark"] .bg-white {  background-color: #000 !important;}[data-theme="dark"] .bg-black {  background-color: #eee !important;}/* CSS For table */[data-theme="dark"] .table {  background-color: #111 !important;  color: #eee;}
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

在您的情况下,将 ID 添加到要更改的文本中:


<label class="custom-control-label" id="modelLabel" for="darkSwitch">Dark Mode</label>

并按如下方式更新您的 resetTheme() 函数:


function resetTheme() {

  var modelLabel = document.getElementById("modelLabel");


  if(darkSwitch.checked){

    (document.body.setAttribute("data-theme", "dark"),

      localStorage.setItem("darkSwitch", "dark"));


    modelLabel.innerHTML = "Light Mode";

  }

  else{

    (document.body.removeAttribute("data-theme"),

      localStorage.removeItem("darkSwitch"));


        modelLabel.innerHTML = "Dark Mode";

  }  

}

希望能帮助到你 :)


查看完整回答
反对 回复 2022-10-27
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

您可以从标签中删除文本并使用 css:before在其中添加内容。


[for="darkSwitch"]:before{

  content:'Dark Mode'

}


[data-theme="dark"] [for="darkSwitch"]:before{

  content:'Light Mode'

}

演示在https://jsfiddle.net/ju2n3svy/


查看完整回答
反对 回复 2022-10-27
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

为标签提供一个 ID 并使用 DOM 更改文本。


<label class="custom-control-label" for="darkSwitch" id="darkLabel">Dark Mode</label>

var label=document.getElementById("darkLabel");

label.innertHTML="Dark Mode"; //If Light Mode

label.innertHTML="Light Mode"; //If Dark Mode


查看完整回答
反对 回复 2022-10-27
  • 3 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信