使用 jQuery 测试 html lang 属性

Testing for html lang attribute with jQuery

我正在使用以下代码检查 <html> 元素上的 lang 属性:

if( $("html:lang(en)") ){
  // Do something
}

我注意到这并不总是有效。例如,当lang="fr",或者没有定义语言属性时,代码仍然被执行。

根据 jquery 文档 (https://api.jquery.com/lang-selector/),它应该可以工作。为什么不是这样?最重要的是:如何检查以一致的方式使用了哪个 lang 属性?

$("html:lang(en)") 将始终是 truthy value since it returns a jQuery object. Instead, you need to check length property 的返回对象以检查元素是否存在。

if($("html:lang(en)").length){
  //          here --^^^^^^^^--
  // Do something
}

您也可以使用 [] 选择器并检查 length 属性 以了解它是否存在:

if ($("html[lang='en-us']").length) {
    //do something.
}