48

我的代码似乎有问题。我需要说:

if ( $('html').attr('lang').val() == 'fr-FR' ) {
    // do this
} else {
    // do that
}

当我检查控制台时,我得到一个错误,告诉我这不是一个函数。帮助将不胜感激。

谢谢,

4

2 回答 2

106

只需删除 .val()。喜欢:

if ( $('html').attr('lang') == 'fr-FR' ) {
    // do this
} else {
    // do that
}
于 2012-06-26T15:54:30.543 回答
13

jQuery 的attr方法返回属性的值:

.attr()方法仅获取匹配集中第一个元素的属性值。要单独获取每个元素的值,请使用循环构造,例如 jQuery.each().map()方法。

所有你需要的是:

$('html').attr('lang') == 'fr-FR'

但是,您可能想要进行不区分大小写的匹配:

$('html').attr('lang').toLowerCase() === 'fr-fr'

jQuery 的val方法返回表单元素的值。

.val()方法主要用于获取input,select和等表单元素的值textarea。在<select multiple="multiple">元素的情况下,该.val()方法返回一个包含每个选定选项的数组;如果未选择任何选项,则返回null.

于 2012-06-26T15:56:09.233 回答