634 votos

jQuery hasattr comprobación para ver si hay un atributo en un elemento

Duplicar posibles:
Compruebe la existencia de un atributo con jQuery

¿Cómo comprobar si hay un atributo en un elemento en jQuery? Similar a hasClass , pero con attr ?

Por ejemplo,

 if ($(this).hasAttr("name")) {
    // ...
}
 

984voto

strager Puntos 41713
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) {
    // ...
}

580voto

Domenic Puntos 40761

¿Qué te parece justo $(this).is("[name]") ?

El [attr] sintaxis es el selector CSS de un elemento con un atributo attr , y .is() comprueba si el elemento está llamada coincide con el selector CSS dado.

135voto

karim79 Puntos 178055

Si usted va a controlar la existencia de atributos a menudo, me permito sugerir la creación de un hasAttr de función, para utilizar como usted planteó la hipótesis en su pregunta:

 $.fn.hasAttr = function(name) {  
   return this.attr(name) !== undefined;
};

$(document).ready(function() {
    if($('.edit').hasAttr('id')) {
        alert('true');
    } else {
        alert('false');
    }
});

<div class="edit" id="div_1">Test field</div>
 

81voto

Estás tan cerca es una locura.

if($(this).attr("name"))

No hay hasAttr pero el golpe de un atributo por su nombre, le acabo de volver de undefined si no existe.

Esta es la razón por la continuación de las obras. Si se quita el atributo de nombre de #encabezado de la segunda alerta de incendio.

Actualización: Según los comentarios, el de abajo SÓLO funciona si el atributo está presente Y es algo que no se si el atributo está ahí, pero vacía

<script type="text/javascript">
$(document).ready(function()
{
    if ($("#heading").attr("name"))
      alert('Look, this is showing because it\'s not undefined');
    else
      alert('This would be called if it were undefined or is there but empty');
});
</script>
<h1 id="heading" name="bob">Welcome!</h1>

73voto

Domenic Puntos 40761

Tarde a la fiesta, pero ... ¿por qué no this.hasAttribute("name") ?

Consulte este

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X