You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS实现AR/EN语言切换时无法反向切换的问题如何解决?

多语言双向切换功能修复方案

问题根因

  • 判断条件误用了赋值运算符=而非全等比较运算符===,导致每次进入函数都会强制把按钮值设为AR,永远只会执行第一个分支逻辑,无法触发else分支的切换逻辑
  • 你使用的是普通<button>标签,自定义的AR/EN是按钮的文本内容,而非表单元素的value属性,读取.value拿不到正确的状态值

修复后代码

JavaScript代码

function change() {
  const langBtn = document.getElementById('AE');
  const bodyEl = document.getElementById('body');
  // 读取按钮文本判断当前语言状态
  const currentLang = langBtn.innerText.trim();
  // 抽离重复的fetch逻辑,减少代码冗余
  fetch("https://api.npoint.io/abb3ff619eec383b1bb7")
    .then(response => response.json())
    .then(data => {
      if (currentLang === "AR") {
        langBtn.innerText = "EN";
        bodyEl.dir = "rtl";
        document.querySelector("#lang").innerText = data.name[0].ara;
      } else {
        langBtn.innerText = "AR";
        bodyEl.dir = "ltr";
        document.querySelector("#lang").innerText = data.name[0].eng;
      }
    })
}

HTML代码(原有逻辑无需修改)

<body id="body">
  <button style="color:black;" id="AE" onclick="change()">AR</button>
  <div id="lang">Amjad</div>
</body>

效果验证

点击AR按钮会切换为EN,同步切换页面为阿拉伯语文本、从右到左布局;点击EN按钮会切换回AR,同步切换页面为英文文本、从左到右布局,双向切换功能正常。

内容的提问来源于stack exchange,提问作者Amjad Abdullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 23:57:02