У меня есть объект, в котором хранятся данные. У меня есть, где пользователи могут выбрать вариант, а затем появится список результатов. Результаты - это ссылки. После нажатия ссылки я хотел бы, чтобы данные о компании отображались в виде таблицы. Единственное, что я не знаю, как сделать так, чтобы после того, как вы нажали на ссылку, 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



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


Самый простой способ - добавить атрибуты данных в ваш 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>