2013-03-04 7 views
0

Я пытаюсь добавить подразделение к делению, используя .append() из jquery. Но мой код не добавляет раздел.Как добавить раздел в раздел с использованием jquery

Мой код:

for(var k = 0,len=data.shareInfo.length;k<len;k += 1){ 
    var newcommhtml = '<div id="S0'+thecid+'" class="snew">'; 
    newcommhtml = newcommhtml + '<div class="author-image"><img src="data:image/jpeg;base64,'+data.shareInfo[k].senderPicture+'" alt="'+data.shareInfo[k].uname+'" width="100%" height="100%" class="ava"></div><span>'+data.shareInfo[k].uname+' shared the image '+data.shareInfo[k].imname+'</span>'; 
    newcommhtml = newcommhtml + '<div class="s-content"><div class="s-message"><span>'+nl2br(data.shareInfo[k].message+'</span></div><div class="shpicture">'); 
    newcommhtml = newcommhtml + '<img src="data:image/jpeg;base64,'+data.shareInfo[k].image+'" alt="'+data.shareInfo[k].imname+'" width="100%" height="100%" data-id="'+data.shareInfo[k].id+'" data-alid="'+data.shareInfo[k].alid+'" data-shareid="'+data.shareInfo[k].shareId+'">'; 
    newcommhtml = newcommhtml + '</div></div>'; 
    var thelm = "#S0"+thecid; 
    $('#spscrl').append(newcommhtml); 
    $(thelm).hide().fadeIn('slow'); 
    var newcommhtml=null; 
    newcommhtml ='<div class="SPcommentbox">'; 
    newcommhtml = newcommhtml + '<div class="comment"><div class="commenter-image">'; 
    newcommhtml = newcommhtml +'</div><div class="commentername">'; 
    newcommhtml = newcommhtml +'</div><div class="addcomment"><input type ="text" placeholder="Write a comment..." class="commentbox"></input></div></div>'; 
    var selector='#S'+thecid; 
    $(selector).append(newcommhtml); 
    thecid++; 
    } 

код будет иметь возможность присоединить к divs#spscrl. Но он не может добавить к selector(#S+thecid). Если я попытаюсь добавить с помощью class, то есть .snew, добавьте division. Обратите внимание, что я добавляю в дивы с JQuery ...

Пожалуйста, кто поможет мне решить эту проблему ... Спасибо ...

+0

Вы забыли нуль. Не должно быть: 'var selector = '# S0' + thecid;'? – 11684

+0

Спасибо .... Я действительно забыл об этом ... Большое вам спасибо – james

ответ

2

Вы можете установить идентификатор newcommhtml в S0 + theCid, так сначала a 's', , затем нуль, а затем содержимое theCid. Позже вы пытаетесь воссоздать этот ID , но забудьте ноль! Это объясняет, почему этот подход работает первым, но не во второй раз.

Меняем:

var selector='#S'+thecid; 

В:

var selector='#S0'+thecid; // THE ZERO! 

Но я не могу сказать наверняка, не видя содержание theCid.

+0

Я отвечу позже, теперь это не позволит .. – james

+0

Ха-ха, я всегда забываю! @james – 11684

+0

Ваш комментарий для меня не имеет смысла, родительский div никогда не может быть старше дочернего div. @james – 11684

1

Вы ошибаетесь в ошибке selector.

Также вы увеличить читаемость кода, используя еще несколько настроек, как с помощью jQuery.each для итерации, используя += оператора для concatination и используя метод цепочки, как ar thelm = $(newcommhtml).hide().appendTo('#spscrl').fadeIn('slow');

$.each(data.shareInfo, function(i, v) { 
    var newcommhtml = '<div id="S0' + thecid + '" class="snew">'; 
    newcommhtml += '<div class="author-image"><img src="data:image/jpeg;base64,' 
      + v.senderPicture 
      + '" alt="' 
      + v.uname 
      + '" width="100%" height="100%" class="ava"></div><span>' 
      + v.uname 
      + ' shared the image ' + v.imname + '</span>'; 
    newcommhtml += '<div class="s-content"><div class="s-message"><span>' 
      + nl2br(v.message + '</span></div><div class="shpicture">'); 
    newcommhtml += '<img src="data:image/jpeg;base64,' + v.image + '" alt="' 
      + v.imname + '" width="100%" height="100%" data-id="' + v.id 
      + '" data-alid="' + v.alid + '" data-shareid="' + v.shareId + '">'; 
    newcommhtml += '</div></div>'; 

    $('#spscrl').append(newcommhtml); 

    var thelm = $(newcommhtml).hide().appendTo('#spscrl').fadeIn('slow'); 

    newcommhtml = '<div class="SPcommentbox">'; 
    newcommhtml += '<div class="comment"><div class="commenter-image">'; 
    newcommhtml += '</div><div class="commentername">'; 
    newcommhtml += '</div><div class="addcomment"><input type ="text" placeholder="Write a comment..." class="commentbox"></input></div></div>'; 
    $(newcommhtml).appendTo(thelm); 
    thecid++; 
}); 

Там не нужно использовать var newcommhtml дважды или использовать newcommhtml=null;

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