Как добавить элемент html через jquery?

Я использовал 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>

Как добавить элемент html через jquery?

Мне нужен такой вывод.

 <span class = "spnSensorName" onclick = "calSensorPage('CamshaftPosition','CAMSHAFT position sensor')">CAMSHAFT POSITION SENSOR</span>

я знаю несколько недостающих цитат. пожалуйста, помогите мне исправить.

Извините за мой английский.

Благодарность

imgTag += "');>" + _fileName[i]['SensorNmtxt'];, вы пропустили заключительную цитату
Satpal 13.04.2018 10:36

Не работает....

Sathishkumar 13.04.2018 10:41

Не могли бы вы предоставить образец значений в массиве _fileName.

Rory McCrossan 13.04.2018 10:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
53
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Привет, вот ваш исправленный 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}];

Sathishkumar 13.04.2018 10:46

Я обновил решение, можете ли вы сказать мне, работает ли оно для вас?

Lucas Tambarin 13.04.2018 10:49
Ответ принят как подходящий

Проблема связана с тем, что вы используете неверно совпадающие и неэкранированные кавычки в генерируемой вами строке 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>

Нет проблем, рад помочь

Rory McCrossan 13.04.2018 11:29

попробуй это

демонстрация: 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")
}

Другие вопросы по теме