在元素之后插入 - 逻辑帮助

时间:2011-06-17 15:26:23

标签: jquery append

我有以下内容:

$.post(baseUrl+"/index/voto",{id:eid},function(e){
 var divMsg = $("#msg");
 var html = "";
   if(e.msg == 1){
     html = '<img src="'+baseUrl+'/lib/img/showImageA.png" alt="pdf" />';
   }else if(e.msg == 3){
     //HERE I MUST DISPLAY A TEXT AFTER A GIVEN ELEMENT
   } else if(e.msg == 2){
     html = '<img src="'+baseUrl+'/lib/img/showImageB.png" alt="pdf" />';
   } else{
     html = '<img src="'+baseUrl+'/lib/img/showImageC.png" alt="pdf" />';
   }
   divMsg.show();
   divMsg.html(html); 

}, 'json');

所以,如果有东西到来,我会用图片替换内容。 这很有效。

问题在于,在第二个案例(e.msg ==3)我应该删除或用图片替换所有内容,但是我需要附加一个元素p在一个特定的地方说:“某事”。

我试图显示:无;那个元素然后添加:

else if(e.msg == 3){
 myParagrafId.show();
}

什么都没有出现。

我试图:

else if(e.msg == 3){
 $('#foo').append('<p>Something</p>');
}

仍然没有...

该函数似乎返回了html,忽略了我在第二个条件中的指令。

所以,也许我需要抓住现有的html部分,追加我需要的东西,然后允许函数输出它?

附加说明: 如果我发出警报();在这种情况下(e.msg == 3),它有效。

1 个答案:

答案 0 :(得分:1)

首先,你总是将html放入$("#msg")这里

//in case 3 html = ''
divMsg.html(html);

所以你应该检查它不是一个空字符串:

if (html != ''){
    divMsg.html(html);
}

因此,如果您尝试在$("#msg")内部进行深入研究(如在其中显示隐藏的div),则在案例3中它不会执行任何操作,因为它会被''替换,因为您正在调用$("#msg").html('');

这有帮助吗?

否则你做错了,如果你展示你的标记我们可以提供帮助