1

我声明了一个 HTML 字符串并将其设置为一个变量。我想不出它会产生错误的任何原因,但它是:

未捕获的 SyntaxError:Ln 136 上的意外标识符。

Ln 136: new_comment = '
    <li class="photobooth-comment">
       <span class="username">
          <a href="#">You</a>
       </span>
       <span class="comment-text">
          ' + text + '
       </span>
       <span class="comment-time">
          2d
       </span>
    </li>
';
4

4 回答 4

3

您可以做的最接近您想要的事情是转义换行符。

new_comment = '\
    <li class="photobooth-comment">\
       <span class="username">\
          <a href="#">You</a>\
       </span>\
       <span class="comment-text">\
          ' + text + '\
       </span>\
       <span class="comment-time">\
          2d\
       </span>\
    </li>\
';

除此之外,您还可以使用字符串连接。

(我发现了一个可能的重复项:如何创建多行字符串

于 2013-02-17T09:31:35.490 回答
3

如果您想在实际代码中包含换行符以使其更易于阅读,则需要使用反斜杠对每个换行符进行转义,例如:

var new_comment = '\
    <li class="photobooth-comment">\
       <span class="username">\
          <a href="#">You</a>\
       </span>\
       <span class="comment-text">\
          ' + text + '\
       </span>\
       <span class="comment-time">\
          2d\
       </span>\
    </li>\
';

或者您需要将它们连接为单独的字符串,如下所示:

var new_comment = ''+
    '<li class="photobooth-comment">' +
       '<span class="username">' +
          '<a href="#">You</a>' +
       '</span>' +
       '<span class="comment-text">' +
          text +
       '</span>' +
       '<span class="comment-time">' +
          '2d' +
       '</span>' +
    '</li>'+
'';

或者简单地把它放在一行上:

var new_comment = '<li class="photobooth-comment"><span class="username"><a href="#">You</a></span><span class="comment-text">' + text + '</span><span class="comment-time">2d</span></li>';

不是那么容易阅读,但对你的 JavaScript 来说更整洁!

于 2013-02-17T09:33:55.353 回答
0

您正在使用,因此,使用 jquery 您可以将 .html() 方法放入<li>您的 HTML 页面并使用.html()方法获取匹配元素集中第一个元素的 HTML 内容,或者设置每个匹配元素的 HTML 内容,如下所示

 var new_comment = $(".photobooth-comment").html();
   //do what you want to 
于 2013-02-17T09:37:38.010 回答
0

这是一个顽皮的 PHP 启发方法。我把它贴在这里作为一种心理锻炼。请不要投反对票...

演示

var new_comment; /*<<<EOF 
    <li class="photobooth-comment">
       <span class="username">
          <a href="#">You</a>
       </span>
       <span class="comment-text">
          $text
       </span>
       <span class="comment-time">
          2d
       </span>
    </li>
EOF*/
// note the script tag here is the hardcoded as the first tag 
new_comment=document.getElementsByTagName('script')[0].innerHTML.split("EOF")[1]; 
alert(new_comment.replace('$text','Here goes some text'));
于 2013-02-17T09:43:28.537 回答