2010-02-22 88 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 2010-02-22 21:12:37

2

假设你认同ID您的div并有元素的一个数组ID作为键

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

并且全部完成:)