Я пытаюсь добавить синтаксис HTML с помощью javascript и onClick, пытаясь передать функцию с двумя параметрами. Но при передаче параметров я делаю что-то неправильно в конкатенации. Пожалуйста, помогите. Вот код добавления.
addPanelHtml += "<li><a href='#' id='btnhistory" + i+ "' onclick='histDrpDwnEdt("+chkval+"','" + i+ ")'>History Parameters</a></li>";
при запуске программы получаю ошибку:
Uncaught SyntaxError: неожиданный конец ввода
какой твой addPanelHtml
? Можете ли вы предоставить больше кода, пожалуйста?
Я думаю, что ваша ошибка здесь: onclick='histDrpDwnEdt("+chkval+"','" + i+ ")
вы должны удалить знаки одинарной кавычки вокруг запятой (если и chhval
, и i
являются числовыми значениями): onclick='histDrpDwnEdt("+chkval+"," + i+ ")
или вы должны добавить один перед chval
и один после i
(если они являются строковыми значениями): onclick='histDrpDwnEdt('"+chkval+"','" + i+ "')
.
... на самом деле, если chhval
и i
являются строковыми значениями, вы должны добавить одинарные кавычки и экранировать их: onclick='histDrpDwnEdt(\'"+chkval+"\',\'" +i+ "\')
Я настоятельно рекомендую использовать строки шаблона в этом случае использования
Вот решение со строками шаблона
addPanelHtml += `<li><a href='#' id='btnhistory${i}' onclick='histDrpDwnEdt(${chkval}, ${i})'>History Parameters</a></li>`;
Затем вы можете избавиться от всех этих + " " +
конкатенаций и просто использовать ${}
для включения ваших переменных.
Это значительно улучшает читаемость вашего кода.
Здесь вы можете узнать больше о строках шаблона
Предложение хорошее, но введенная вами строка неверна; должно быть addPanelHtml += `<li><a href='#' id='btnhistory${i}' onclick='histDrpDwnEdt(${chkval}, ${i})'>History Parameters</a></li>`;
@developerExecutive, на самом деле это называется литералом шаблона или строкой шаблона (developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… ), как правильно упомянул Алекс, в то время как concat метод String.prototype
( developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…) и не изменился в ES6. ;)
Попробуйте вместо 'попробуйте вот так\':
addPanelHtml += "<li><a href=\'#\' id=\'btnhistory" + i+ "\' onclick=\'histDrpDwnEdt("+chkval+"\',\'" + i+ ")\'>History Parameters</a></li>";
Мое предложение:
var addPanelHtml = '', i = 0, chkval = 1;
addPanelHtml += '<li><a href = "#" id = "btnhistory' + i + '" onclick = "histDrpDwnEdt(' + chkval + ', ' + i + ')">History Parameters</a></li>';
console.info(addPanelHtml);
Попробуйте,
addPanelHtml += "<li><a href='#' id='btnhistory" + i + "'" + " onclick='histDrpDwnEdt("+chkval+"','" + i+ ")'>History Parameters</a></li>";