A jQuery hasAttr() Equivalent

Avatar of Chris Coyier
Chris Coyier on (Updated on )

jQuery doesn’t really have an .hasAttr() function. You might assume that it does, but alas, it does not.

A StackOverflow thread has some pretty good solutions.

Get the attribute, check the value

var attr = $(this).attr('name');

// For some browsers, `attr` is undefined; for others, `attr` is false. Check for both.
if (typeof attr !== typeof undefined && attr !== false) {
  // Element has this attribute
}

Native JavaScript has a way

If you only have a jQuery reference…

$(this)[0].hasAttribute("name");

jQObject[0].hasAttribute("name");

Filter the selection

$(this).is('[name]');

$(this).filter("[name='choice']");