2011-06-17 133 views
1

我有以下几点:插入 - 逻辑帮助

$.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部分,追加我需要什么,然后允许函数输出它?

附加说明: 如果我放置一个alert();在这种情况下(e.msg == 3)它的工作原理。

+1

可以方法使用后把任何标记或DOM元素。 – ShankarSangoli

+0

如果e.msg不是3,那么它将不会执行任何你在该块中写入的内容。可能你应该明白为什么它不像预期的那样返回3。 – ShankarSangoli

+0

它确实进入'else if(e.msg == 3)'块吗?试着在那里放一个警报,看看它是否发生。 –

回答

1

第一AF你总是把html$("#msg")这里

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

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

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

所以,如果你试图做somenthing内$("#msg")(就像在里面显示一个隐藏的div),在情况3中,它什么都不做,因为它被''取代,因为你正在调用$("#msg").html('');

对此有帮助吗?

否则,你正在做的事情错了,如果,如果你表现出你的标记我们可以帮助

+0

事实上,这有助于......我相信我正在用display:none移除父元素; :s - arrhh !!!假人,......现在检查......是的。我正在删除一个父元素,并且在没有考虑到的元素之后的追加不起作用。解决了。谢谢尼古拉。 :DDD – MEM

+0

如果我使用$('#foo')。append('

Something

'); 和#foo是锚ID,我注意到,而不是:foo

东西

,我GET foo

something

这是预期的行为? – MEM

+0

确实after()是我应该看的。 :) – MEM