jQuery中的“如果不存在则附加”

时间:2010-02-22 20:24:47

标签: jquery

我正在尝试为jQuery编写一个辅助函数,如果它尚不存在则创建一个元素。到目前为止,我有:

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

但我想知道这不是一个解决的问题。是吗?

(我之所以这样,是因为我可以提供JSON内容并将其放在正确的位置。如果存在正确的位置,我只会更新内容。如果它不存在,我会创建它)。

2 个答案:

答案 0 :(得分:2)

如果您希望element成为类名,那么您还需要使用类选择器进行测试:

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

答案 1 :(得分: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>');
 }
}

并且全部完成了:)