2011-02-22 71 views
2

我有一個QUnit測試套件和我打電話爲什麼JQuery .html()返回null?

$('#idForElement').html(); 

一個QUnit測試中(這是登記在$(document).ready(),然後運行),但這個函數返回在Chrome,Firefox和IE null

然而,在Firebug的Firefox中的腳本選項卡,我可以通過添加代碼作爲監視表達式來獲得期望的字符串,可以看到頁面上,並在Firebug的HTML選項卡中顯示一個HTML元素。

我讀過http://api.jquery.com/html/,我已經分爲新var,一個initalised串本,放$('#idForElement');結果到一個變量,並呼籲該.html(),試圖在這些瀏覽器的警報。

讓下一步工作的下一步是什麼?

+1

您是否驗證過var foo = $(「#idForElement」);'確實拉動了您正在查找的DOM節點?請記住'.html()'拉入元素的innerHtml,所以如果節點不包含任何內容,那麼你什麼也得不到。 –

+0

我做過了,是的,因爲我成功將'.append'ing成功'foo'。 – StuperUser

回答

2

新秀錯誤。

正在調用$('#idForElement'),但將var設置爲$('idForElement')。

事實證明,你可以追加到一個空的包裝集。

4

這可能取決於您何時調用此功能。如果在document.ready事件之前執行此操作,該元素可能尚不存在。嘗試像這樣包裝您的代碼:

$(document).ready(function() { 
    //your code goes here 
}); 
+1

它在一個QUnit測試中,在一個ready塊內註冊,然後調用,所以不是這樣。 – StuperUser