2016-12-01 89 views
1

我用下面的代码来检查<html>元素的lang属性:测试的HTML语言属性与jQuery

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

我注意到,这不工作始终。例如,当lang="fr",或者没有定义语言属性时,代码仍然会执行。

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

回答

2

因为它返回一个jQuery对象,所以$("html:lang(en)")总是一个truthy value。相反,您需要检查返回对象的length property以检查元素的存在。

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

你也可以使用[]选择和检查length属性知道它的存在:

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