Dan*_*382 4 html multilingual jquery lang
我在 WordPress 中使用多语言插件,使用户能够更改网站上的语言选项。
该插件除其他外还更改了 HTML 语言属性,例如
<html lang="en-GB">
Run Code Online (Sandbox Code Playgroud)
或者
<html lang="en-US">
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下选择器检测语言:
if ($( 'html:lang(en-us)')) {
alert('US lang detected');
}
Run Code Online (Sandbox Code Playgroud)
然而,这会产生误报,因为即使打开的 HTML 属性设置为“en-GB”,页面下方的其他元素也会设置为“en-us”。
哪个选择器会专门检查开头的 HTML 属性?
您的选择器是正确的,但您在 if 语句中错误地使用了它。
$( 'html:lang(en-us)')
将返回一个 jQuery 对象。jQuery 对象始终为true,因此您的 if 语句将始终计算为 true。
一个简单的修复方法是使用该.is
函数,它将返回一个布尔值:
if ($('html').is(':lang(en-us)')) {
alert('US lang detected');
}
Run Code Online (Sandbox Code Playgroud)
通过使用 jQuery 来完成这样的任务,您可能会使事情变得不必要的复杂和缓慢:
if ( document.documentElement.lang.toLowerCase() === "en-us" ) {
alert( "American English." );
}
Run Code Online (Sandbox Code Playgroud)
Vanilla JavaScript 更适合读取属性值等琐碎任务。
归档时间: |
|
查看次数: |
15322 次 |
最近记录: |