4

我正在尝试在 jQuery 中为以下 append 方法设置超时。我尝试过的一切都在不断返回Uncaught SyntaxError: Unexpected identifier

这是我的代码:

    setTimeout("$('#user-comments').append('<div class='video_comment'>
<div class='name'>David</div><div class='time'>test</div>
<div class='indiv-comment'><p>'"+message+"'</p></div></div><hr class='gray' />')",3000);

任何帮助表示赞赏。

4

2 回答 2

8
setTimeout(function () {
    $("#user-comments").append('<div class="video_comment">
                                <div class="name">David</div>
                                <div class="time"><?php echo date('F j, Y, g:i a'); ?></div>
                                <div class="indiv-comment"><p>' + message + '</p></div></div>');
}, 3000);
于 2012-09-26T13:53:54.587 回答
0

首先,换行符在 javascript 中可能是个大麻烦。正如尼尔所说,您需要转义引号。有时,分解较长的字符串会使它更具可读性。此外,您可以为 setTimeout 提供函数而不是字符串。这是一个例子:

setTimeout(function() {
    var nameTag = '<div class="name">David</div>';
    var timeTag = '<div class="time">test</div>';
    var commentTag = '<div class="indiv-comment"><p>' + message + '</p></div>';
    var wrap = '<div class="video_comment">' +
                   nameTag +
                   timeTag +
                   commentTag +
               '</div><hr class="gray" />';

    $('#user-comments').append(wrap)
}, 3000);

这样,您可以清楚地看到哪些引号在哪里开始和结束,并且您根本不必担心字符串中的换行符。

于 2012-09-26T14:07:36.650 回答