Это связано с тем, как метод appendLot
обращается к lotData
.Данные лота - это массив, поэтому к ним нужно обращаться с помощью индексов.
var lotName = lotData[0].lotName;
Другая проблема - сравнение lotAmount
с key
с использованием ===
.Чтобы убедиться, что они числа, можно использовать метод parseInt () .
lotData
не нужно передавать в метод appendLot
, поскольку он доступенна весь main.js
.
Чтобы сопоставить только первый элемент и добавить к элементу размера в качестве доказательства концепции, переменные лота можно установить так:
function appendLot()
{
var lotName = lotData[0].lotName;
var lotId = lotData[0].id;
var lotAmount = lotData[0].availableSpots;
var key = $("#sizeId").val();
var size = $('#size');
if ( parseInt(lotAmount, 10) === parseInt(key, 10) ) {
size.append("<h1>" + lotName + "</h1>");
size.append("<p> Lot ID: " + lotId + "</p>");
size.append("<p> Spots: " + lotAmount + "</p>");
}
}
Чтобы добавить все соответствующие лоты к элементу размера, массив lotList
можно зациклить, используя логику, аналогичную приведенной выше.
function appendLot()
{
var size = $('#size');
for (var i = 0; i < lotData.length; i++) {
var lotAmount = lotData[i].availableSpots;
var key = $("#sizeId").val();
if ( parseInt(lotAmount, 10) === parseInt(key, 10) ) {
size.append("<h1>" + lotData[i].lotName + "</h1>");
size.append("<p> Lot ID: " + lotData[i].id + "</p>");
size.append("<p> Spots: " + lotAmount + "</p>");
}
}
}
Дайте мне знать, если у вас есть какие-либо другие вопросы.Надеюсь, это поможет.