2010-04-15 5 views
42

J'essaie d'effacer innerHTML de la div avant de le repeupler. J'ai essayé removeData() mais une fois que c'est appelé, quand j'essaye d'ajouter les données, je n'obtiens rien de la ligne suivante après la suppression alors que si je supprime le removeData() c'est bien encore. Je veux juste effacer tout contenu précédent dans ce div avant de le re-peupler.Supprimer innerHTML de div

divToUpdate.removeData(); //clean out any existing innerHTML div content first 
    divToUpdate.html(data); 

On dirait qu'il ne fait jamais à mon divToUpdate.html (données) pour une raison quelconque après que REMOVEDATA appelle();

+0

Quel est l'événement à l'origine de cette situation? Une réponse onclick ou Ajax? –

Répondre

1

vous devriez être en mesure de remplacer simplement sans supprimer les données précédentes

3
divToUpdate.innerHTML =  ""; 
9
$('div').html(''); 

Mais pourquoi êtes-vous de compensation, divToUpdate.html(data); remplaceront complètement le vieux HTML.

+0

parce que je crois que la div dans la page parent conserve l'ancien innerHTML chaque fois que je ferme et rouvre la boîte de dialogue jQuery UI – PositiveGuy

+0

Comment le savez-vous? que faites-vous référence qui vous dit autre que regarder le contenu div qu'il efface? – PositiveGuy

+0

Dans la documentation jQuery (http://api.jquery.com/html/) "Chaîne de code HTML à définir comme contenu de chaque élément correspondant." J'interprète le travail "set" pour signifier remplacer. Pour vérifier cela, je pourrais faire quelque chose comme alert ($ ('div') .html()) entre les deux lignes de code à vérifier. –

21

Pour supprimer tous les éléments enfants de votre div:

$('#mysweetdiv').empty(); 

.removeData() et la fonction .data() correspondante sont utilisées pour attacher des données derrière un élément, que si vous vouliez noter qu'un élément de liste spécifique visé à l'ID utilisateur 25 dans votre base de données:

var $li = $('<li>Joe</li>').data('id', 25); 
+0

comment choisir en utilisant ce li? – Omer

98

jQuery Data est un concept différent de HTML. removeData n'est pas pour supprimer le contenu d'un élément, c'est pour supprimer les éléments de données que vous avez précédemment stockés.

Il suffit de faire

divToUpdate.html(""); 

ou

divToUpdate.empty(); 
1

var $div = $('#desiredDiv'); 
$div.contents().remove(); 
$div.html('<p>This is new HTML.</p>'); 

Cela devrait fonctionner très bien.