Ein jQuery hasAttr()-Äquivalent

Avatar of Chris Coyier
Chris Coyier am

jQuery hat eigentlich keine Funktion namens .hasAttr(). Man könnte annehmen, dass es sie gibt, aber leider ist dem nicht so.

Ein StackOverflow-Thread bietet einige ziemlich gute Lösungen.

Das Attribut abrufen, den Wert prüfen

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 hat einen Weg

Wenn Sie nur eine jQuery-Referenz haben…

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

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

Die Auswahl filtern

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

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