let language = navigator.language;
switch (language) {
case es :
document.getElementById("demo").innerText = "Hola ";
break;
case en :
document.getElementById("demo").innerText = "Hello ";
}
我没有收到任何回复。 如果有人知道为什么它不起作用,我将不胜感激
我假设你的 html 看起来像这样:
<body>
<h1 id="demo">Hello World</h1>
</body>
<script src="app.js"></script>
和我的js文件:
const language = navigator.language;
switch (language) {
case 'es' :
document.getElementById("demo").innerText = "Hola ";
break;
case 'en' :
document.getElementById("demo").innerText = "Hello ";
}
您需要在语言切换案例周围添加引号'es'而不是es ...因为navigator.language返回一个字符串,如果您不使用引号,javascript将寻找一个变量或函数调用。
当我进行这些修改时,您的代码工作得很好。
您需要将可能的值用引号括起来,并且需要解析
language
值以使其看起来像 switch case 中的值:
let language = navigator.language;
let dashIndex = language.indexOf('-');
if (dashIndex >= 0) {
language = language.substring(0, dashIndex);
}
switch (language) {
case 'es' :
document.getElementById("demo").innerText = "Hola ";
break;
case 'en' :
document.getElementById("demo").innerText = "Hello ";
}
<h1 id="demo"></h1>
请注意,您可以使用
case 'en' :
而不是 default :
,即使该语言具有您的代码未预期的值,它也会使用英语作为默认值。