JavaScript получает данные из объекта массива и помещает в таблицу html

У меня есть объект, в котором хранятся данные. У меня есть, где пользователи могут выбрать вариант, а затем появится список результатов. Результаты - это ссылки. После нажатия ссылки я хотел бы, чтобы данные о компании отображались в виде таблицы. Единственное, что я не знаю, как сделать так, чтобы после того, как вы нажали на ссылку, JavaScript захватывает данные из этой ссылки и помещает их в таблицу html, которая будет отображаться. Мой вопрос: как связать мои элементы html с данными в объекте, а затем разрешить отображение этих данных в таблице? Без изменения направления моего исходного кода.

$("#listingResults").html("Business Listings Under Category <strong>" + textNameOfBusinessSelected + "</strong> are: <br/><br/><ul id='listOfBusinesses'><li><a href='javascript-exercise-16.html#bottomOfPage' onclick='clickListingLink()'>" + businessListNames.join("<br/><a href='javascript-exercise-16.html#bottomOfPage' onclick='clickListingLink()'><li>") + "</li></ul>");
} // line closes function


function clickListingLink() {
  // function is for when a link is clicked after list of businesses appear
  $('#listOfBusinesses').on('click','li', function(){     
    clickListingLink(); 
    console.info('you clicked me'); 
    seeListingInfoTable(); 
    $("hr").show();    
  });
}

function seeListingInfoTable(titleOfBusinessSelected, businessLinkSelected) {
  // function is for table that shows info of specific link clicked 
  console.info("apple");
  var tbl = "";
    tbl += '<table class = "table table-hover">';
    tbl += '</table>';
      tbl += '<tbody>';
      tbl += '<caption class = "listingTitle">' + titleOfBusinessSelected + '</caption>';
      tbl += '<tr>';
      tbl += '<th>Address</th>';
      tbl += '<th>Phone Number</th>';
      tbl += '<th>Website</th>';
      tbl += '<th>Specialty</th>';
      tbl += '</tr>';
      tbl += '<tr>';
      tbl += '<td><div class = "row_data" edit_type = "click" col_name = "fname">' + businessLinkSelected["Address"] + '</div></td>';
      tbl += '<td><div class = "row_data" edit_type = "click" col_name = "fname">' + businessLinkSelected["Phone Number"] + '</div></td>';
      tbl += '<td><div class = "row_data" edit_type = "click" col_name = "fname">' + businessLinkSelected["Website"] + '</div></td>';
      tbl += '<td><div class = "row_data" edit_type = "click" col_name = "fname">' + businessLinkSelected["Specialty"] + '</div></td>';
      tbl += '</tr>';
    tbl += '</tbody>';
    tbl += '</table>';
    $(document).find("#infoTable").html(tbl);
} // line ends seeListingInfoTable function
Поведение ключевого слова "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
0
379
1

Ответы 1

Самый простой способ - добавить атрибуты данных в ваш HTML, например, <a href = "#" data-name = " + businessName + " data-address = " + businessAddress +">, а затем захватить их с помощью jQuery .data () метод.

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

var $person = $('.person');
var $resultName = $('.result-name');
var $resultAge = $('.result-age');

$person.on('click', function() {
  var $this = $(this);
  
  var name = $this.data('name');
  var age = $this.data('age');
  
  $resultName.html(name);
  $resultAge.html(age);
});
<script src = "https://code.jquery.com/jquery-3.1.0.js"></script>
<ul>
  <li><a class = "person" href = "#" data-name = "John Doe" data-age = "12">One</a></li>
  <li><a class = "person" href = "#" data-name = "Mark Z" data-age = "23">Two</a></li>
</ul>

<div class = "result">
  <p>Name: <span class = "result-name"></span></p>
  <p>Age: <span class = "result-age"></p>
</div>

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