jQuery проверить, если attr = значение

Кажется, у меня проблемы с моим кодом. Мне нужно сказать:

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

Когда я проверяю консоль, я просто получаю сообщение об ошибке, говорящее мне, что это не функция. Помощь приветствуется.

Спасибо,


person beefchimi    schedule 26.06.2012    source источник
comment
Вы должны использовать data() для такого рода вещей.   -  person asawyer    schedule 26.06.2012
comment
Нет. В HTML есть атрибут lang.   -  person Rich Bradshaw    schedule 26.06.2012


Ответы (2)


Просто удалите .val(). Нравиться:

if ( $('html').attr('lang') == 'fr-FR' ) {
    // do this
} else {
    // do that
}
person Miguel Ribeiro    schedule 26.06.2012
comment
Ты быстро ответил, чувак, мне нужно подождать еще 5 минут, чтобы принять его :) - person beefchimi; 26.06.2012
comment
Вы часто хотите проверить значение атрибута class, но атрибут class может иметь несколько значений, разделенных пробелом, например <div id="mydiv" class="one two three"></div>, поэтому в этом случае вы можете использовать функцию hasClass() для проверки такого значения $( "#mydiv" ).hasClass( "two" ) - person Sumeet Pareek; 06.08.2021

Метод 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.

person zzzzBov    schedule 26.06.2012
comment
Очень подробный, отличный ответ. Спасибо. - person beefchimi; 26.06.2012