2012-06-26 5 views
27

Кажется, у меня проблемы с моим кодом. Я должен сказать:jQuery проверить, если attr = значение

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

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

Спасибо,

+1

Вы должны использовать 'data()' для такого рода вещей. – asawyer

+1

№ Html имеет атрибут lang. –

ответ

62

Просто снимите .val(). Как: метод

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

@beefchimi согласен с ответом тогда :) –

+1

Вы ответили быстро чуваку, я должен подождать еще 5 минут, чтобы принять его :) – beefchimi

+0

К сожалению ... это верно! Извините :) –

7

JQuery в attr возвращает значение атрибута:

Метод .attr() получает значение атрибута для только первого элемента согласованного набора. Чтобы получить значение для каждого элемента отдельно, используйте конструкцию цикла, такую ​​как метод jQuery или .map().

Все, что вам нужно:

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

Однако может хотите сделать регистронезависимое матч:

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

метод JQuery в val возвращает значение элемент формы.

.val() метод в основном используется для получения значений элементов формы, таких как input, select и textarea. В случае элементов <select multiple="multiple"> метод .val() возвращает массив, содержащий каждую выбранную опцию; если опция не выбрана, она возвращает null.

+0

Очень тщательный, отличный ответ. Благодарю. – beefchimi