2010-02-22 3 views
3

J'essaye d'écrire une fonction d'aide pour jQuery qui crée un élément s'il n'existe pas déjà. Jusqu'à présent, j'ai:"Ajouter si n'existe pas" dans jQuery

function setup(element, parent){ 
    if($(parent).child(element).length == 0){ 
    $(parent).append('<div class="'+element+'"></div>'); 
    } 
} 

mais je me demande si ce n'est pas un problème résolu. Est-ce?

(La raison pour laquelle je veux que c'est que je puisse tirer dans le contenu JSON et le mettre au bon endroit. Si le existe bon endroit, je vais mettre à jour le contenu. Si elle n'existe pas, je vais créer)

Répondre

2

Si vous prévoyez element être le nom de la classe, alors vous devez également utiliser le sélecteur de classe pour les tests.

function setup(className, parent) { 
    if ($(parent).children("."+className).length == 0) { 
     $(parent).append("<div></div>").children(":last-child").addClass(className); 
    } 
} 
+0

+1 J'ai donné une solution plus complète que la mienne. – user113716

2

en supposant que vous identifiez vos divs avec id et ont un ensemble d'éléments avec ids comme clés

function mergeIn(elements,parent){ 
$(parent).children('div').each(function(){ 
    $(this).html(elements[$(this).attr('id')]); 
    delete elements[$(this).attr('id')]; 
}); 
//only not present elements remain in the array 
for(var i in elements){ 
    $(parent).append('<div id="'+i+'">'+elements[i]+'</div>'); 
} 
} 

et tout est fait :)

Questions connexes