2009-05-28 5 views
0

)(Windows Vistaの/ 7ガジェットを開発し、addTextObjectを使用してテキストを出すときは、この作品:jQuery変数を使用してaddTextObject()を使用できないのはなぜですか?

var mytext = "Hello"; 
document.getElementById("background").addTextObject(mytext , "Verdana", 11, "white", 10, 10); 

をしかし、私は仕事に変数にこのjQueryのセレクタを取得カント:

var mytext = $("#myid").text(); 
document.getElementById("background").addTextObject(mytext , "Verdana", 11, "white", 10, 10); 

それは動作しません、それは空の文字列を書き込みます。 なぜですか?

答えて

0

私はその理由を知りました。 div内のコンテンツは、jQueryを使用して動的に追加されました。

<div id="myid"></div> 

$("#myid").append("somedata"); 
var mytext = $("#myid").text(); 
System.Debug.outputString(mytext); // Empty 

何らかの理由で、これはガジェットでは機能しません。 それは

静的コンテンツはガジェットでは機能しない...しかし、プレーンHTMLファイルで作業を行います。

<div id="myid">somedata</div> 

var mytext = $("#myid").text(); 
System.Debug.outputString(mytext); // Ok 

は、誰もが、私はサイドバーで動的に追加されたコンテンツを照会することができますどのように説明できますか? 更新: This私の問題を解決しました。

+0

私は、ブラウザがその作業を行うためにコントロールを放棄しなければならない場合がありました。これを行うために、コードをsetTimeout()によって呼び出される関数に入れます。 – Nosredna

+0

回避策を見つけました。こちらをご覧ください:http://stackoverflow.com/questions/923489/is-there-a-way-to-query-html-xml-content-from-a-variable-using-jquery –

0

DOMが完了する前に、多分あなたのコードが実行されている$(document).ready

 

$(document).ready(function() { 
    $("#myid").append("somedata"); 
    var mytext = $("#myid").text(); 
    System.Debug.outputString(mytext); 
}); 
 

を試してみてください。

関連する問題