【发布时间】:2021-03-24 20:55:37
【问题描述】:
我正在尝试使用从 AJAX 请求中提取的动态生成的变量在模板文字中设置 href 标记,但似乎无法弄清楚。当我单击标记的元素时没有任何反应,由于某种原因,当我检查网页上的元素时,<a href/> 没有出现。
这是我的代码:
[...]
data.forEach(([cafeId, cafeName, cafeAddress]) => {
var myCol = $('<div id="col"></div>');
var myPanel = $(
`
<div class="card-group">
<div class="card card-block m-3 overflow-auto" style="width: 18rem;">
<div class="card-body">
<h5 class="card-title venue-name" id=\"` + cafeName + `\"><a href="venue/\"` + cafeId + `\"></a></h5>
<h6 class="card-subtitle mb-2 text-muted venue-address"></h6>
<div class="dropdown">
<div class="venue-options" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton"><a id="share" class="dropdown-item" href="#">Share</a><a id="addToListNoModal" class="dropdown-item" href="#">Add to List</a></div>
</div>
</div>
</div>
</div>
`
);
[...]
这是一个 JSFiddle:https://jsfiddle.net/50pwyfde/12/
【问题讨论】:
-
我不确定到底是什么导致了问题,但模板文字的重点是您不必连接字符串:
'some text' + var + 'more text'更易读为some text${var}more text(与整个事情的反引号) -
您不需要转义模板文字中的引号。但这似乎也不会引起问题,所以不是这样。
标签: javascript template-literals