2010-07-23 6 views
1

Je me demandais si quelqu'un connaissait un meilleur moyen d'écrire ce bloc de code.Raccourcir la commande jQuery

if($('div.homeBox > div').length > 0){ 
    $('div.homeBox > div').remove(); 
} 
$('div.homeBox').append(data.loadPage); 

Cela fonctionne comme il est, mais je voudrais le rendre si possible. Je remplace un bloc de code dans ma page avec des données HTML renvoyées par une requête ajax (data.loadPage).

Un exemple de data.loadPage serait

<div id="variousIDs" > 
    ... some content ... 
</div > 

Merci à l'avance pour tout conseil.

+1

Pourquoi le test de 'longueur> 0'? Appeler '.remove()' sur un ensemble de résultats vide ne devrait rien faire. – Lucas

Répondre

1
// you don't need to test if it exists first 
$('div.homeBox > div').remove() 
$('div.homeBox').append(data.loadPage); 

// if you want to do it in one go, this less clear option should work, too: 
// .end() moves back up the stack to undo the last filter operation (.children()) 
$('div.homeBox').children('div').remove().end().append(data.loadPage); 

// if you want to get rid of everything within homebox, this is even easier: 
$('div.homeBox').empty().append(data.loadPage); 
+0

c'est exactement ce que je cherchais, merci pour la réponse rapide. – stmpy

0

Donnez la div dans div.homeBox son propre identifiant (par exemple, "id = homeBoxInnerDiv" ou quelque chose), puis

if ($ ('# homeBoxInnerDiv'). Visibles()) {$
('#homeBoxInnerDiv'). replaceWith (data.loadPage); Ceci remplacera le contenu de la div que vous voulez supprimer avec le nouveau contenu. }