tiene style saber has elemento ejemplo disabled attribute atributo jquery

style - jquery id value



jQuery hasAttr revisando para ver si hay un atributo en un elemento (9)

Posible duplicado:
Verificar la existencia de un atributo con JQuery.

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

Por ejemplo,

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


¿Qué tal solo $(this).is("[name]") ?

La sintaxis [attr] es el selector CSS para un elemento con un atributo attr , y .is() verifica si el elemento al que se llama coincide con el selector CSS dado.


Escribí un complemento hasAttr () para jquery que hará todo esto de manera muy simple, exactamente como lo solicitó el OP. Mas informacion here

EDITAR: Mi complemento se eliminó en el gran desastre de eliminación de la base de datos de plugins.jquery.com de 2010. Puede buscar here información sobre cómo agregarlo usted mismo y por qué no se ha agregado.


Estás tan cerca que es una locura.

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

No hay hasAttr, pero golpear un atributo por su nombre solo se devolverá indefinido si no existe.

Es por esto que lo de abajo funciona. Si elimina el atributo de nombre de #encabezado, se activará la segunda alerta.

Actualización: De acuerdo con los comentarios, la siguiente información SOLO funcionará si el atributo está presente Y se establece en algo, no si el atributo está ahí, sino vacío

<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>


La mejor manera de hacer esto sería con filter() :

$("nav>ul>li>a").filter("[data-page-id]");

Aún sería bueno tener .hasAttr (), pero como no existe, es así.


Si va a verificar la existencia de atributos con frecuencia, sugeriría crear una función hasAttr , para usar como se plantea 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>


También puede usarlo con atributos como deshabilitado = "deshabilitado" en los campos del formulario, etc. así:

$("#change_password").click(function() { var target = $(this).attr("rel"); if($("#" + target).attr("disabled")) { $("#" + target).attr("disabled", false); } else { $("#" + target).attr("disabled", true); } });

El atributo "rel" almacena el id del campo de entrada de destino.


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

Refiera This


Object.prototype.hasAttr = function(attr) { if(this.attr) { var _attr = this.attr(attr); } else { var _attr = this.getAttribute(attr); } return (typeof _attr !== "undefined" && _attr !== false && _attr !== null); };

Crucé esto mientras escribía mi propia función para hacer lo mismo ... Pensé en compartir en caso de que alguien más tropiece aquí. Agregué nulo porque getAttribute () devolverá nulo si el atributo no existe.

Este método le permitirá verificar objetos jQuery y objetos regulares javascript.


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