不能将文本字符串传递给jquery函数?

时间:2011-01-10 05:09:25

标签: jquery string debugging function

我的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>

2 个答案:

答案 0 :(得分:8)

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

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

请注意我使用.attr和.text,因为这在附加信息时更加安全。

编辑另外,需要注意的另一件事是:ID是HTML中的唯一标识符。因此,如果您多次调用此函数,则可能需要指定烫发。 “div”改变.text()的值,或考虑使用div的调试[CSS]类。

答案 1 :(得分:4)

您正在粘贴$(message)中的对象,而不是变量消息。试试这个:

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