Javascript 字符串插值,如 ruby

Javascript string interpolation like in ruby

我的 JS 中有以下代码。

$('#ytResultsList').append('<li><a href="https://www.youtube.com/watch?v="' + item.id.videoId + '></a></li>');

从上面的代码可以看出,在HTML中,结果如下。

<li><a href="https://www.youtube.com/watch?v=" bruvbiwlwfi=""></a></li>

我希望 URL 像下面 HTML 中的那样。

"https://www.youtube.com/watch?v=bruvbiwlwfi" 

如何在 Javascript 中执行此操作?

问题是因为您的 href 格式不正确。您需要将结束 " 移动到变量之后,如下所示:

$('#ytResultsList').append('<li><a href="https://www.youtube.com/watch?v=' + item.id.videoId + '"></a></li>');

引号是你的问题 尝试:

$('#ytResultsList').append('<li><a href=\'https://www.youtube.com/watch?v=' + item.id.videoId + '\'></a></li>');

Templatestrings do have pretty good support 在现代浏览器中,如果您需要支持旧浏览器,可以进行 polyfilled - 注意反引号:

const videoId = 'bruvbiwlwfi'
const url = `https://www.youtube.com/watch?v=${videoId}`
=> "https://www.youtube.com/watch?v=bruvbiwlwfi"