以下代码在标题中生成错误:我确定它与 this.getAttribute('data-name')有关,因为如果删除它,一切正常。
var id = item.registrationID;
var nome = item.registrationName;
document.getElementById('divPaziente').innerHTML += "<button class='button button-block button-positive' id='"+id+"' data-name='"+nome+"' onclick='redi(this.id, this.getAttribute('data-name'));'>"+nome+' '+cognome+' - '+id_referenza_paziente+"</button>";
window.redi = function(id, nome)
{
alert(id);
alert(nome);
localStorage.setItem("id", id);
}
答案 0 :(得分:0)
您必须转义'围绕数据名,因为该字符串将被视为以“ getAttribute('”)结尾。
'redi(this.id, this.getAttribute('data-name'));'
^ ^
| |
+-Start of string. +- End of string (escape it..)
答案 1 :(得分:0)
第一个解决方案:
来自:
redi(this.id, this.getAttribute('data-name'));
收件人:
"' onclick=\"redi(this.id, this.getAttribute('data-name'));\">"
var item = {registrationID: 1, registrationName: 'name'};
var cognome = "cognome";
var id_referenza_paziente = "id_referenza_paziente";
var id = item.registrationID;
var nome = item.registrationName;
document.getElementById('divPaziente').innerHTML +=
"<button class='button button-block button-positive' id='" + id + "' data-name='"+ nome +
"' onclick=\"redi(this.id, this.getAttribute('data-name'));\">" +
// "' onclick='redi(this.id, this.dataset.name);'>" +
nome +' '+ cognome + ' - ' + id_referenza_paziente + "</button>";
window.redi = function(id, nome)
{
alert(id);
alert(nome);
localStorage.setItem("id", id);
}
<div id="divPaziente"></div>
第二个解决方案(基于dataset):
来自:
redi(this.id, this.getAttribute('data-name'));
收件人:
"' onclick='redi(this.id, this.dataset.name);'>"
var item = {registrationID: 1, registrationName: 'name'};
var cognome = "cognome";
var id_referenza_paziente = "id_referenza_paziente";
var id = item.registrationID;
var nome = item.registrationName;
document.getElementById('divPaziente').innerHTML +=
"<button class='button button-block button-positive' id='" + id + "' data-name='"+ nome +
"' onclick='redi(this.id, this.dataset.name);'>" +
nome +' '+ cognome + ' - ' + id_referenza_paziente + "</button>";
window.redi = function(id, nome)
{
alert(id);
alert(nome);
localStorage.setItem("id", id);
}
<div id="divPaziente"></div>
答案 2 :(得分:0)
我已经使用this.getAttribute("data-name")
解决了。