2012-11-14 12 views
0
var popupType1 = "<div id=\"layerpopuplock\" style=\"position:absolute; width:375px; height:170px; z-index:2; left: 2px; top: 50px; visibility: hidden; \">"; 
    popupType1 += "<table width=\"375\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF0000\">"; 
    popupType1 += "<tr><td align=\"center\" bordercolor=\"#FFFFFF\" class=\"FacetBiggerFieldCaptionTD\" id=\"popupmessagelock\" nowrap>message</td></tr>"; 
    popupType1 += "</table></div>"; 

$(popupType1).appendTo($('body')); 

這段代碼不起作用。

我嘗試了一個$('body')的console.log,我看到它是空的,但OF課程HTML已經在這裏,並且正文存在。

這可能是$('body')爲空的原因嗎?


SOLUTION:

對不起,浪費你的時間。 我的假設是錯的:html已經在這裏

我改正了這種方式,現在它去了,謝謝!!!!

$(function() { 
    ... previous code ... 
}); 
+2

您可以省略$()from'body' – devnull69

+1

您不應該將冗長的HTML字符串傳遞給'$',而是使用'$。而不是使用parseHTML'。在這種情況下,只需要'$(「body」)。append(popupType1)'是最合適的。 – pimvdb

+0

我發現了問題,對不起 – realtebo

回答

3

我看到3點要注意:

  1. CONCAT(合併)與+=琴絃...... var longstr = str; longstr += str2;
  2. .appendTo()使用一個選擇,而不是一個對象引用... $(..).appendTo('body');
  3. 您是否使用DOM-Ready處理程序(如jQuery.ready(...);)來觸發您的代碼?該處理器保證,所有的DOM節點都準備好​​了您在使用腳本,它會在正確的地方(而不是其他節點獲得的方式,即使壽身體節點存在)jQuery API: .ready()

另外2插入:您也可以使用$('body').append(popupType1);

另外還有3:它可能取決於你在哪裏調用腳本 - 例如,體內的腳本標記可能表現爲奇怪的添加元素。

+0

第三種選擇拯救了我的生命!我沒有使用ready()處理程序!謝謝 ! – realtebo

8

更換你的最後2個

popupType1 = ... 

通過

popupType1 += ... 

有一個HTML字符串,是有道理的。

還要注意,如果div樣式中沒有visibility: hidden;,則會更容易看到結果。

Demonstration

+0

我測試了代碼:用+ =和去除可見性:隱藏,它完美地工作。 –

+0

我發現了這個問題,很抱歉,請參閱修改後的問題。 – realtebo

7

您需要在做+=現在好了,只追加</table></div>

+0

該代碼有效,就像dystroy說的刪除可見性:隱藏,你會在你的頁面上看到它或將它改變爲可見性:可見 – Anton

+0

我發現了這個問題,對不起,看到修改後的問題。 – realtebo

1
popupType1 += "<tr><td align=\"center\" bordercolor=\"#FFFFFF\" class=\"FacetBiggerFieldCaptionTD\" id=\"popupmessagelock\" nowrap>message</td></tr>"; 
popupType1 += "</table></div>"; 

你缺少+ =從你的最後兩個popupType1分配。

+0

^他們所說的 – killercowuk

+0

我發現了這個問題,對不起,看到修改後的問題。 – realtebo