Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery check if attr = value

I seem to be having trouble with my code. I need to say:

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

When I check the console, I just get an error telling me this isn't a function. Help would be appreciated.

Thanks,

like image 899
beefchimi Avatar asked Jun 26 '12 15:06

beefchimi


2 Answers

Just remove the .val(). Like:

if ( $('html').attr('lang') == 'fr-FR' ) {
    // do this
} else {
    // do that
}
like image 70
Miguel Ribeiro Avatar answered Oct 22 '22 09:10

Miguel Ribeiro


jQuery's attr method returns the value of the attribute:

The .attr() method gets the attribute value for only the first element in the matched set. To get the value for each element individually, use a looping construct such as jQuery's .each() or .map() method.

All you need is:

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

However, you might want to do a case-insensitive match:

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

jQuery's val method returns the value of a form element.

The .val() method is primarily used to get the values of form elements such as input, select and textarea. In the case of <select multiple="multiple"> elements, the .val() method returns an array containing each selected option; if no option is selected, it returns null.

like image 24
zzzzBov Avatar answered Oct 22 '22 08:10

zzzzBov