js 中的 HTML 连接失败

HTML concatenation in js failed

本文关键字:失败 连接 HTML 中的 js      更新时间:2023-09-26
  html += '<div style="background: url("http://graph.facebook.com/' + photo 
    + '/picture?type=normal") background-size: cover;>';

我已经尝试了 1 小时,仍然无法正确完成。

它不起作用,因为引号不正确。您有嵌套的双引号,这导致了问题。

您的字符串在生成时如下所示

<div style="background: url("http://graph.facebook.com/xxx/picture?type=normal") background-size: cover;">

浏览器将看到

<div style="background: url(" 

所以你需要转义引号。

html += '<div style=''background: url("http://graph.facebook.com/' + this.cover_photo 
    + '/picture?type=normal") background-size: cover;''>';

尝试分解它。 您希望它在连接时返回什么? 将值替换为 this.cover_photo 。 例如,假设this.cover_photo'foo'

这将评估为:

<div style="background: url("http://graph.facebook.com/' + 'foo' + '/picture?type=normal") background-size: cover;>

这将评估为:

<div style="background: url("http://graph.facebook.com/foo/picture?type=normal") background-size: cover;>

您的引号已关闭,如上面突出显示的StackOverflow语法所示。 你需要要么转义你的内心引号,要么根本不使用引号作为url

function templete_render(html, cover_photo){
   return html  + "<div style='background : url(http://graph.facebook.com/" + cover_photo + "/picture?type=normal) background-size: cover;'>";
} // end of templete_render

用:-

html = templete_render(html, this.cover_photo);

谢谢:)

这样试试吧。它工作正常。将代码替换为以下代码:

html += '<div style="background: url(http://graph.facebook.com/' +photo+ '/picture?type=normal); background-size: cover;">';