Tengo varios elementos en una página HTML que tienen la misma clase, pero son tipos de elementos diferentes. Quiero averiguar el nombre de la etiqueta del elemento mientras lo recorro, pero .attr no acepta "etiqueta" o "nombre de etiqueta".
Esto es lo que quiero decir. Considere estos elementos en una página:
<h1 class="rnd">First</h1>
<h2 id="foo" class="rnd">Second</h2>
<h3 class="rnd">Third</h3>
<h4 id="bar" class="rnd">Fourth</h4>
Ahora quiero ejecutar algo como esto para asegurarme de que todos mis elementos tengan una identificación si una no estaba ya definida:
$(function() {
$(".rnd").each(function(i) {
var id = $(this).attr("id");
if (id === undefined || id.length === 0) {
// this is the line that's giving me problems.
// .attr("tag") returns undefined
$(this).attr("id", "rnd" + $(this).attr("tag") + "_" + i.toString());
}
});
});
El resultado que me gustaría sería que los elementos H2 y H4 tuvieran una identificación de
rndh2_1
rndh4_3
respectivamente.
¿Alguna idea sobre cómo puedo descubrir el nombre de la etiqueta del elemento representado por "esto"?
javascript
jquery
BigPigVT
fuente
fuente
Respuestas:
debiera ser
fuente
Puedes probar esto:
Consulte los documentos para obtener más información sobre is ().
fuente
nodeName
devuelve una cadena que, según el navegador, está en mayúsculas o no.is('*')
en años. Probablemente no responda al OP, pero funcionó para mí, ¡gracias, @middus!Desde que respondí a esta pregunta una vez antes y no me ayudó en mi caso (no
this
tenía una instancia de selector de jQuery, sino que tenía una). Al llamarget()
, obtendrá el elemento HTML, mediante el cual puede obtener elnodeName
como se mencionó anteriormente.o
fuente
También puede usar
$(this).prop('tagName');
si está usando jQuery 1.6 o superior.fuente
Si. Puede usar el siguiente código:
fuente
Creo que no puede usar
nodeName
en jQuery ya que nodeName es una propiedad DOM y jQuery en sí no tiene unanodeName
función o propiedad. Pero según el encuestado que mencionó por primera vez sobre estasnodeName
cosas, así es como pude resolver el problema:NOTA:
this
aquí hay un objeto jQuery.fuente
Dado que esta es una pregunta que aparece en google usando jquery tagname first child como consulta, publicaré otro ejemplo:
El resultado de jquery es un nombre de etiqueta (en mayúsculas): P
fuente
Puede obtener el nombre de la etiqueta del elemento html en toda la página.
Podrías usar:
fuente
nota: reemplace esto con su selector (h1, h3 o ...)
fuente
Lo acabo de escribir para otro número y pensé que podría ayudar a cualquiera de ustedes también.
Uso:
onclick="_DOM_Trackr(this);"
Parámetros:
Código fuente:
fuente
html > body > div#coreApp > div#productpage > div#productpage-wrapper > div > div > div > div > div#pthumb12 > form#thumb_uploader_src > input
$('*').each(function(_i,_e){$(_e).attr('title',_DOM_Trackr(_e,true));});
La mejor manera de solucionar su problema es reemplazar
$(this).attr("tag")
conthis.nodeName.toLowerCase()
othis.tagName.toLowerCase()
.¡Ambos producen exactamente el mismo resultado!
fuente
Considere el método de FILTRO rápido :
devoluciones:
entonces:
fuente
En su lugar, simplemente haz:
fuente