在html string / concat()中插入javascript函数

时间:2017-04-22 12:19:18

标签: javascript jquery html

我想连接字符串以便像这样创建html <ul> / <li>

 var html = "<ul>";
 json.elements.forEach( function (tab)
 {
    html += "<li><img onclick=partager(";
    html += tab.title+","+tab.adresse+","+tab.image_url+","+tab.item_url+","+tab.url;
    html += "); src="+tab.image_url+" /><h3>"+tab.title+"</h3><p>"+tab.adresse+"</p></li>";
 });
 html += "</ul>";

如何在HTML中包含<img>标记中的javascript函数?它不像那样......

1 个答案:

答案 0 :(得分:0)

似乎你忘了在HTML参数(onclick)周围添加引号(&#34;&#34;): <img onclick="partager(...)" ... /> 这就是你的代码的外观(使用ES6):

let html = '<ul>' + json.elements.map(tab => 
  `<li>
    <img onclick="partager(${[tab.title, tab.addresse, tab.image_url, tab.item_url, tab.url].join(',')})" src=${tab.image_url} />
    <h3>${tab.title}</h3>
    <p>${tab.addresse}</p>
  </li>`
).join('') + '</ul>'

如果你不想使用ES6,这也可行:

var html = '<ul>'
json.elements.forEach(function(tab) {
  html += '<li><img onclick="partager('
  html += [tab.title, tab.addresse, tab.image_url, tab.item_url, tab.url].join(',')
  html += ')" src="' + tab.image_url + ' /><h3>' + tab.title + '</h3><p>' + tab.addresse + '</p></li>'
})
html += '</ul>'