2011-01-10 112 views
3

我的jquery脚本有什么问题?不能将文本字符串传递给jquery函数?

这里的脚本

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

这里是生成的HTML我得到

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

,我期待的HTML是这个

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

回答

4

你在,粘贴的对象$(消息),而不是可变消息。试试这个:

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

谢谢jmort。这样可行。 – 2011-01-10 05:25:47

8

您使用$(message)一个字符串转换为一个jQuery对象。基本上,你正在使message不再是一个字符串,而是一个jquery的选择器。请尝试以下操作:

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

注意到我使用.attr和的.text,因为这是附加信息时,出价更安全的一点点。

编辑另外,还有一点需要注意:ID是HTML中的唯一标识符。因为这个原因,如果你多次调用这个函数,你可能想要分配一个perm。 “div”可以改变.text()的值,或者考虑为div使用debug [CSS]类。

+0

我发布之前刷新的好东西。这正是我要说的。 +1 – 2011-01-10 05:14:17