gpt4 book ai didi

javascript - 重构 jQuery 代码时,为什么我得到的是 [object Object] 而不是我预期的 HTML?

转载 作者:行者123 更新时间:2023-11-28 18:43:39 26 4
gpt4 key购买 nike

我正在尝试清理我的代码,我在我的脚本中发现了许多类似于以下内容的片段:

$msg.html('<a href="#" data-userName=' + msg.user +
' class="userName" onClick="showCurrUsersMsgs(this);">@' + msg.user + '</a>' + '<span class="timestamp"> <b>&middot;</b> ' +
jQuery.timeago(msg.created_at) +'</span></br>' +
msg.message);

我尝试做类似的事情

var $userProfile = $('<a href="#" data-userName=' + msg.user +
' class="userName" onClick="showCurrUsersMsgs(this);">@' + msg.user + '</a>');
var $timeStamp = $('<span class="timestamp"> <b>&middot;</b> ' +
jQuery.timeago(msg.created_at) +'</span>');
$msg.html($userProfile + $timeStamp + '</br>' + msg.message);

使其更具可读性,但页面无法正确构建。相反,它显示类似 [Object][Object] 的内容。

为什么会发生这种情况?如何修复此错误?

最佳答案

这是重构 html 生成 jQuery 代码的清晰(虽然很长)的方法:

var $a = $('<a>', {
'href': '#',
'data-userName': msg.user,
'class': 'userName',
'html': '@' + msg.user
}).on('click', function() { showCurrUsersMsgs(this);});

var $span = $('<span>', {
'class': 'timestamp',
'html': '<b>&middot;</b>' + msg.created_at
});

var $p = $('<p>', {html: msg.message});

var $html = $a.add($span).add($('<br>')).add($p);

关于javascript - 重构 jQuery 代码时,为什么我得到的是 [object Object] 而不是我预期的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35731745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com