(Javascript) - Uncaught SyntaxError: Неожиданный конец ввода - PullRequest
0 голосов
/ 18 ноября 2018

Следующий код генерирует ошибку в заголовке: я уверен, что это что-то, связанное с 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);
}

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Первое решение:

от:

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>

Второе решение (на основе набора данных ):

от:

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>
0 голосов
/ 19 ноября 2018

Я решил использовать this.getAttribute(&quot;data-name&quot;).

0 голосов
/ 18 ноября 2018

Вы должны экранировать 'вокруг data-name, потому что строка будет считаться оканчивающейся на "getAttribute ('".

'redi(this.id, this.getAttribute('data-name'));'
^                                ^
|                                |
+-Start of string.               +- End of string (escape it..)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...