2011-01-10 14 views
3

jqueryスクリプトで何が問題になっていますか?文字列をjquery関数に渡すことはできませんか?

ここでスクリプト

function debug(message){ 
    $("body").append("<div id=\"debug\">"+ $(message) +"</div>"): 
} 
debug("show this debug message in the div"); 

は、ここで私は

<div id="debug">[object Object]</div> 

を取得したHTMLは、私が期待したHTMLは、あなたが$(、でオブジェクトを貼り付けている。この

<div id="debug">show this debug message in the div</div> 

答えて

4

ありますですメッセージ)を送信します。これを試してください

function debug(message){ 
     $("body").append("<div id=\"debug\">"+ message +"</div>"): 
    } 
+0

ありがとうございます。それは動作します。 –

8

$(message)を使用して文字列をjqueryオブジェクトに変換しています。基本的には、messageはもはや文字列ではなく、jqueryのセレクタになっています。以下を試してみてください:

function debug(message){ 
    $('body').append($('<div>').attr('id','debug').text(message)); 
} 

注記情報を追加するときは、これは安全な値ですので、.attrと.textを使用します。

EDITまた、IDはHTMLの一意の識別子です。このため、この関数を複数回呼び出す場合は、どちらかを割り当てることができます。 "div"を.text()の値に変更するか、またはdivの[CSS]クラスを使用することを検討してください。

+0

私は転記する前にリフレッシュして良かったこと..これはまさに私が言うつもりだった。 +1 –

+0

&@Josh - このアプローチは、よりクリーンです。私は本当に私のJavaScriptにHTMLを置くのが好きではありません。 +1。ありがとうbrad。 – jmort253

+0

謎解き。 –

関連する問題