使用纯JavaScript设置<html>标签的属性

4

我想为<html>标签设置两个属性:

  • dir: rtl
  • lang: ar

我尝试过:

    document.documentElement.outerHTML.setAttribute("dir", "rtl");
    document.documentElement.outerHTML.setAttribute("lang", "ar");

And:

    document.setAttribute("dir", "rtl");
    document.setAttribute("lang", "ar");

但是这两个都没有起作用。我想这样做是因为我正在使用JavaScript为我的网站制作一个多语言系统(阿拉伯语和英语)。所以,如果选择的语言是阿拉伯语,我想设置这两个属性。"Original Answer"翻译成"最初的回答"。
3个回答

10
从你的第一个例子中删除那个"outerHTML"内容即可。
document.documentElement.setAttribute("dir", "rtl");
document.documentElement.setAttribute("lang", "ar");

甚至更简短:
document.documentElement.dir = "rtl";
document.documentElement.lang = "ar";

3
只需从您的第一个示例中删除"outerHTML"。 "document.documentElement" 指的是 "" 元素:

console.log(document.documentElement) //before setting attributes

document.documentElement.setAttribute("dir", "rtl");
document.documentElement.setAttribute("lang", "ar");

console.log(document.documentElement) //after setting attributes
<html></html>


2
为什么不直接使用querySelector呢? "最初的回答"
const html = document.querySelector('html')
html.setAttribute("dir", "rtl");
html.setAttribute("lang", "ar");

@Nisarg 谢谢你找到了那个问题。已经修正了。 - connexo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接