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

Jos*_*son 4 string debugging jquery function

我的jquery脚本出了什么问题?

这是脚本

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

这是我得到的html

<div id="debug">[object Object]</div>
Run Code Online (Sandbox Code Playgroud)

我期待的HTML就是这个

<div id="debug">show this debug message in the div</div>
Run Code Online (Sandbox Code Playgroud)

Bra*_*tie 9

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

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

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

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


jmo*_*253 5

您要在$(message)中粘贴一个对象,而不是变量message。尝试这个:

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