探している要素は、DOM の準備が整った後に追加されるようです。
document.ready を以下の関数に置き換えてみてください。
$(window).load(function() {
// executes when complete page is fully loaded, including all frames, objects and images
alert("window is loaded");
});
jQuery には、コードを実行してイベント ハンドラーをアタッチするための 2 つの強力なメソッド、$(document).ready と $(window).load が用意されています。すべてのグラフィックスがまだロードされていなくても、HTML ドキュメントがロードされ、DOM の準備が整った時点で、ドキュメントの準備完了イベントがすでに実行されます。ウィンドウが読み込まれる前に特定の要素のイベントをフックする場合は、$(document).ready が適切な場所です。
ウィンドウ読み込みイベントは、すべてのフレーム、オブジェクト、および画像を含む完全なページが完全に読み込まれる少し後に実行されます。したがって、画像やその他のページ コンテンツに関係する関数は、ウィンドウの load イベントまたは content タグ自体に配置する必要があります。
http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/から
取得