Передача объекта JS в строку HTML

У меня есть переменная JS, которая определяет элемент DOM, который я хочу показать где-нибудь еще в DOM, определенный как

var salesRep = $("ul.map").attr("id","1");

И я хочу передать его функции под названием show();

Итак, я сделал

function getSalesRep(salesRep){
 return salesRep
 }

Затем внутри функции show() я вызвал getSalesRep()

Что похоже

function show(){
   getSalesRep();  
   var x1 = "<p>" + salesRep + "<p>";
   $("#map").after($(x1));
   }

Однако в DOM, где должна появиться переменная salesRep, содержащая HTML, она выводит [Object object]

Я могу понять это ... Я убежден, что это как-то связано с тем, как я неправильно определяю объект.

Как salesRep будет выглядеть в DOM

brk 22.03.2018 06:27

попробуйте использовать JSON.stringify (salesRep), а в определении функции используйте JSON.parse (salesRep);

Akshay 22.03.2018 06:27

Умммм. Как getSalesRep(); вернет что-нибудь, кроме undefined? Он возвращает переданный ему ввод, а вы его не передали. Дох!

enhzflep 22.03.2018 06:29

@brk он должен выглядеть как HTML-текст вроде `Hello World '

Ethan E 22.03.2018 06:30

чтобы получить html любого объекта jquery, используйте метод .html (). Попробуйте salesRep.html ()

Thangadurai 22.03.2018 06:31

@enhzflep спасибо! как мне передать это?

Ethan E 22.03.2018 06:31

Пожалуйста. Я не собираюсь строить предположения, не увидев минимального, полного примера. Сейчас я слишком о многом догадываюсь. Простите.

enhzflep 22.03.2018 06:33

Что вы ожидаете от $("ul.map").attr("id","1");? У меня такое чувство, что это не то, чего вы ожидаете? Пожалуйста, покажите свой HTML или еще лучше предоставьте минимальный воспроизводимый пример

Jon P 22.03.2018 06: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) для оценки ваших знаний,...
0
8
732
4

Ответы 4

Это происходит, когда вы объединяете строку и объекты. Вам нужно упростить salesRep и объединить.

Вы можете использовать JSON.stringify () для достижения того же.

Получив строку, вы можете добавить ее как внутренний HTML-код вновь созданного элемента и добавить.

Перед добавлением элемента DOM вам необходимо JSON.stringify в [Object object]

function show(){
  let listOfSales = JSON.stringify(getSalesRep());  
  var x1 = "<p>" + listOfSales + "<p>";
  $("#map").after($(x1));
}

В случае, если вам нужно отображать html-контент,

var x1 = "<p>" + salesRep.html() + "<p>";

Вам не нужна функция для доступа к переменной salesRep. Определение getSalesRep и последующий его вызов здесь не требуется, поскольку он ничего не делает. Если вы удалите определение функции и вызовите метод show, ничего не изменится, так как в конце вы используете переменную salesRep. Вам просто нужно использовать строку salesRep для объекта, используя для него метод .html().

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