javascript - 如何使用 Javascript 确定元素的语言?

标签 javascript html

根据 the spec , language 继承自具有 lang 集的最近的祖先元素。那么我如何获得这些后代之一的语言呢?

我正在使用 lang 属性设置语言:

<div id="outer" lang="es">
    <div id="inner">¿Por qué?</div>
</div>

并尝试使用 lang 属性访问它:

alert(document.getElementById('outer').lang);
alert(document.getElementById('inner').lang);

我很快注意到内部 div 的 lang 属性不是继承的语言(或者它不是继承;不知道)。 This fiddle展示了我所看到的行为。

如何使用 Javascript 确定元素的语言?我真的很想利用 lang 属性的继承,因为我也需要它来使用屏幕阅读器。

最佳答案

根据您链接到的规范:

To determine the language of a node, user agents must look at the nearest ancestor element (including the element itself if the node is an element) that has a lang attribute in the XML namespace set or is an HTML element and has a lang in no namespace attribute set. That attribute specifies the language of the node (regardless of its value).

从另一个元素继承并不意味着为元素本身设置属性。因此,您的代码还必须找到具有 lang 属性(如果存在)的最近父级。参见 this question如果这听起来有问题。

关于javascript - 如何使用 Javascript 确定元素的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463179/

相关文章:

javascript - 谷歌地图自动完成功能不起作用 我该如何解决这个问题?

javascript - 如何将单独的 JS 文件、CSS 文件和 HTML 文件合并在一起?

html - CSS:如何限制水平/垂直滚动?

javascript - Internet Explorer\n 换行符不起作用

javascript - Google 图表双 Y 轴线上的 Y 轴格式

javascript - Handlebars Include partial 两次,一次转义,一次渲染

javascript - 如何在 1 个 if 语句中包含多个条件

javascript - 从主干集合中获取每个模型

javascript - 如何用jquery替换一个字符串中可以变化的字符

jquery - 停止滚动导航连续触发