Я использовал jquery для добавления содержимого html с функцией onclick из jquery, но мой контент не отображается должным образом, пожалуйста, помогите мне это исправить.
мой код
$.each(_fileName, function (i, item) {
imgTag += "<div class='DivColumn-6'>";
imgTag += "<img src = " + _ImgPath + "Icons/" + _fileName[i]['SenIcon'] + ".jpg class='imgSenIcons'/>";
imgTag += "<span class='spnSensorName' onclick=calSensorPage('" + _fileName[i]['SenFnCal'];
imgTag += "','" + _fileName[i]['SensorNmtxt'];
imgTag += ");>" + _fileName[i]['SensorNmtxt'];
imgTag += "</span></div>";
});
$("#divSensorMnu").append(imgTag);
Вывод выглядит так:
<span class = "spnSensorName" onclick = "calSensorPage('CamshaftPosition','CAMSHAFT" position = "" sensor); = "">CAMSHAFT POSITION SENSOR</span>
Мне нужен такой вывод.
<span class = "spnSensorName" onclick = "calSensorPage('CamshaftPosition','CAMSHAFT position sensor')">CAMSHAFT POSITION SENSOR</span>
я знаю несколько недостающих цитат. пожалуйста, помогите мне исправить.
Извините за мой английский.
Благодарность
Не работает....
Не могли бы вы предоставить образец значений в массиве _fileName.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Привет, вот ваш исправленный js-файл, вам не хватает 'прямо здесь, я добавил его, потому что вам его не хватало, он не закончил тег onclick:
imtTag += '<span class = "spnSensorName" onclick = "calSensorPage(\'' + _fileName[i]['SenFnCal'];
imgTag += '\',\'' + _fileName[i]['SensorNmtxt'];
imgTag += '\');">' + _fileName[i]['SensorNmtxt'];
imgTag += '</span></div>';
Просто замените все двойные кавычки на простые и добавьте "" для метода onclick
var Sensors = [{"Sno": 1, "SensorNmtxt": "ДАТЧИК ДАВЛЕНИЯ НА Рельсах", "SenFnCal": "RailPressure", "SenIcon": 1}];
Я обновил решение, можете ли вы сказать мне, работает ли оно для вас?
Проблема связана с тем, что вы используете неверно совпадающие и неэкранированные кавычки в генерируемой вами строке span. Попробуй это:
var _fileName = [{
"Sno": 1,
"SensorNmtxt": "RAIL PRESSURE SENSOR",
"SenFnCal": "RailPressure",
"SenIcon": 1
}];
var imgTag = '', _ImgPath = "/";
$.each(_fileName, function(i, item) {
imgTag += "<div class='DivColumn-6'>";
imgTag += "<img src = " + _ImgPath + "Icons/" + _fileName[i]['SenIcon'] + ".jpg class='imgSenIcons'/>";
imgTag += '<span class = "spnSensorName" onclick = "calSensorPage(\'' + _fileName[i]['SenFnCal'];
imgTag += '\',\'' + _fileName[i]['SensorNmtxt'];
imgTag += '\')";>' + _fileName[i]['SensorNmtxt'];
imgTag += '</span></div>';
});
$("#divSensorMnu").append(imgTag);<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "divSensorMnu"></div>Однако вы должны отметить, что использование атрибутов событий on* - это очень устаревший подход, который делает работу с HTML и связанным с ним JS-кодом беспорядком, как вы можете видеть из кошмара конкатенации выше.
Гораздо лучшее решение - сохранить необходимые метаданные в элементе с использованием атрибутов data и добавить ненавязчивый обработчик событий, примерно так:
var _fileName = [{
"Sno": 1,
"SensorNmtxt": "RAIL PRESSURE SENSOR",
"SenFnCal": "RailPressure",
"SenIcon": 1
}]
var _ImgPath = "/";
var html = _fileName.map(function(item) {
return `<div class = "DivColumn-6"><img src = "${_ImgPath}Icons/${item.SenIcon}.jpg class = "imgSenIcons"/><span class = "spnSensorName" data-fncal = "${item.SenFnCal}">${item.SensorNmtxt}</span></div>`;
});
$("#divSensorMnu").append(html);
$('.spnSensorName').click(function() {
var $el = $(this)
var fncal = $el.data('fncal');
var nmtxt = $el.text();
console.info(fncal, nmtxt);
});<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "divSensorMnu"></div>Нет проблем, рад помочь
попробуй это
демонстрация: https://codepen.io/anon/pen/XEwzaN
var SensorNmtxt = "CAMSHAF position sensor";
var SenFnCal = "CamshaftPosition";
var imgTag = "<div class='DivColumn-6'>";
imgTag += '<img src=123Icons/123.jpg class = "imgSenIcons"/>';
imgTag += '<span class = "spnSensorName" onclick = "calSensorPage(\'' + SenFnCal + '\',\'' + SensorNmtxt + '\')">' + SensorNmtxt;
imgTag += '</span></div>';
$("#divSensorMnu").append(imgTag);
console.info(imgTag)
function calSensorPage (){
console.info("hi")
}
imgTag += "');>" + _fileName[i]['SensorNmtxt'];, вы пропустили заключительную цитату