es posible?
ejemplo:
$('a.change').click(function(){
//code to change p tag to h5 tag
});
<p>Hello!</p>
<a id="change">change</a>
Por lo tanto, hacer clic en el ancla de cambio debería hacer que la <p>Hello!</p>
sección cambie (como ejemplo) a una etiqueta h5 para que termine <h5>Hello!</h5>
después del clic. Me doy cuenta de que puede eliminar la etiqueta p y reemplazarla por una h5, pero ¿hay alguna forma de modificar realmente una etiqueta HTML?
"<" + el.outerHTML.replace(/(^<\w+|\w+>$)/g, "H5") + ">";
O función jQuery conectable: enlaceAquí hay una extensión que lo hará todo, en tantos elementos de la misma manera ...
Ejemplo de uso:
o
o incluso
Fuente del complemento:
fuente
return node;
realidad debería serreturn this;
como se muestra en la "versión anterior" del complemento. Esto es esencial para encadenar eventos juntos como$("tr:first").find("td").clone().replaceTag("li").appendTo("ul#list")
En lugar de cambiar el tipo de etiqueta, debe cambiar el estilo de la etiqueta (o más bien, la etiqueta con una identificación específica). No es una buena práctica cambiar los elementos de su documento para aplicar cambios estilísticos. Prueba esto:
fuente
Noté que la primera respuesta no era exactamente lo que necesitaba, así que hice un par de modificaciones y pensé que la publicaría aquí.
Mejorado
replaceTag(<tagName>)
Argumentos:
Devoluciones:
Bien, sé que hay algunas respuestas aquí ahora, pero me encargué de escribir esto nuevamente.
Aquí podemos reemplazar la etiqueta de la misma manera que usamos la clonación. Estamos siguiendo la misma sintaxis que .clone () con
withDataAndEvents
ydeepWithDataAndEvents
que copia los datos y eventos de los nodos secundarios si se usan.Ejemplo:
Fuente:
fuente
.children()
no incluirá ningún nodo de texto puro. Es posible que desee probar.contents()
IIRC.La idea es envolver el elemento y desenvolver los contenidos:
Uso de la muestra:
Manifestación
fuente
Se me ocurrió un enfoque en el que usa una representación de cadena de su objeto jQuery y reemplaza el nombre de la etiqueta con expresiones regulares y JavaScript básico. No perderá ningún contenido y no tendrá que recorrer cada atributo / propiedad.
Finalmente, puede reemplazar el objeto / nodo existente de la siguiente manera:
fuente
Esta es mi solución Permite alternar entre etiquetas.
fuente
Esta es la forma rápida de cambiar las etiquetas HTML dentro de su DOM usando jQuery. Creo que esta función replaceWith () es muy útil.
fuente
Puede lograr por
data-*
atributo de estadata-replace="replaceTarget,replaceBy"
manera con la ayuda de jQuery para obtenerreplaceTarget
yreplaceBy
valorar por.split()
método después de obtener valores y luego usar el.replaceWith()
método.Esta
data-*
técnica de atributo permite administrar fácilmente cualquier reemplazo de etiquetas sin cambiar a continuación (código común para todos los reemplazos de etiquetas).Espero que el siguiente fragmento te ayude mucho.
fuente
La siguiente función hace el truco y mantiene todos los atributos. Lo usas por ejemplo así:
changeTag("div", "p")
Para asegurarse de que funciona, consulte el siguiente ejemplo
fuente
¿Hay alguna razón específica por la que necesita cambiar la etiqueta? Si solo desea agrandar el texto, cambiar la clase CSS de la etiqueta p sería una mejor manera de hacerlo.
Algo como esto:
fuente