posso rimuovere con jQuery solo il testo in un nodo ma non gli elementi figli?jQuery: come rimuovere il testo ma non gli elementi figli
grazie
posso rimuovere con jQuery solo il testo in un nodo ma non gli elementi figli?jQuery: come rimuovere il testo ma non gli elementi figli
grazie
Ecco la mia idea:
function removeText(element){
var newElement = $('<' + element[0].nodeName + '/>');
element.children().each(function(){
newElement.append(this);
});
element.replaceWith(newElement);
}
non si può fare that.Unless È avvolto da un elemento.
Questo funziona per me:
$(elem).html($(elem).html().replace($(elem).text(),''));
Questa impostare il contenuto HTML, senza il contenuto del testo, significa che qualsiasi tag html all'interno di elem sarà mantenere senza i cambiamenti.
prima:
<div>Hello<input type="text" name="username" value="world!"/></div>
dopo:
<div><input type="text" name="username" value="world!"/></div>
bye
Per favore aggiungi qualche spiegazione. –
Ci sono alcuni problemi con questo: 1) modificare HTML con funzioni di stringa come replace può rompere il markup (ad esempio se il testo è '' o '' '), 2) qualsiasi cosa che corrisponda al testo viene sostituita (ad es. il testo è 'utente', quindi l'attributo nome cambierà), 3) Se il testo è distribuito tra i bambini, non funzionerà (ad esempio "
migliore e la soluzione facile da rimuovere tutti gli elementi di testo che certo div è
$("#firstDiv").contents().filter(function(){
return (this.nodeType == 3);
}).remove();
Soluzione eccellente. Funziona per me. – jwinn
function stripText (elemento) { \t \t var item = elemento [0]; \t \t var newElement = $ ('<' + item.nodeName + '/>'); \t \t for (i = 0; i
Mandrake
+1 La soluzione di Mandrake risolve il problema relativo alla rimozione degli attributi dell'elemento. –