2010-02-22 2 views
3

Я пытаюсь написать вспомогательную функцию для jQuery, которая создает элемент, если он еще не существует. До сих пор у меня есть:«Добавить, если не существует» в jQuery

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

, но мне интересно, если это не проблема. Это?

(Причина, по которой я хочу, чтобы я смог загрузить контент JSON и поместил его в нужное место. Если это правильно, я просто обновляю контент. Если он не существует, я буду создать)

ответ

2

Если вы ожидаете element быть имя класса, то вам также необходимо использовать селектор класса для тестирования:.

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

+1 Дайте более тщательное решение, чем мое. – user113716

2

предполагая, что вы определить ваши дивы с идентификатором и есть массив элементов с ids в качестве ключей

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>'); 
} 
} 

и все это сделано :)

Смежные вопросы