puedo eliminar con jQuery sólo el texto en un nodo, pero no los elementos infantiles?jQuery: cómo quitar el texto, pero no los elementos secundarios
gracias
puedo eliminar con jQuery sólo el texto en un nodo, pero no los elementos infantiles?jQuery: cómo quitar el texto, pero no los elementos secundarios
gracias
Aquí es mi idea:
function removeText(element){
var newElement = $('<' + element[0].nodeName + '/>');
element.children().each(function(){
newElement.append(this);
});
element.replaceWith(newElement);
}
no se puede hacer that.Unless que está envuelto por un elemento.
Esto funciona para mí:
$(elem).html($(elem).html().replace($(elem).text(),''));
Esto creó el contenido HTML sin el contenido del texto, significa que cualquier etiqueta HTML dentro de elem se mantienen sin cambios.
antes:
<div>Hello<input type="text" name="username" value="world!"/></div>
después:
<div><input type="text" name="username" value="world!"/></div>
bye
Por favor, agregue algunas explicaciones. –
Hay algunos problemas con esto:. 1) de edición de HTML con funciones de cadena como reemplazan puede romper el marcado (por ejemplo, si el texto es '' o '"'), 2) se sustituye nada que coincida con el texto (por ejemplo, si el archivo. texto es 'usuario', entonces el atributo de nombre va a cambiar), 3) Si el texto se extiende entre los niños no va a funcionar (por ejemplo "
mejor y fácil solución para eliminar todos los elementos de texto de cierta div es
$("#firstDiv").contents().filter(function(){
return (this.nodeType == 3);
}).remove();
excelente solución. funciona para mí. – jwinn
función stripText (elemento) { \t \t elemento var = elemento [0]; \t \t var newElement = $ ('<' + item.nodeName + '/>'); \t \t for (i = 0; i
Mandrake
+1 La solución de Mandrake resuelve el problema de los atributos del elemento que se eliminan. –