Приведенный ниже код добавляет прослушиватель событий .change
к каждому из select
в классе .cell-select
.Затем он собирает название продукта, идентификатор (который я добавил), а также выбранную опцию из выбора.
Затем он добавляет новую строку при первом изменении выбора или редактирует существующую строкуесли он существует.Я добавил id
к каждой из строк исходной таблицы, чтобы сделать это возможным, вы можете использовать другое уникальное значение, если хотите, но, вероятно, лучше добавить уникальный идентификатор для каждой строки в исходной таблице.
Я также добавил проверку, чтобы увидеть, вернется ли пользователь к «Выберите один» по умолчанию, если значение выбора =""
, тогда любой предыдущий выбор будет удален из таблицы результатов, и функция завершится досрочно.
Дайте мне знать, если это не то, на что вы надеялись.
// Add change event to each select
$(".cell-select").change(function() {
// Get ID, name and chosen option
productID = $(this).closest("tr").attr("id");
productName = $(this).closest("tr").find(".cell4").text();
chosenOption = $(this).find(":selected").text();
chosenValue = $(this).find(":selected").val();
// Check if 'Select one' has been chosen, remove any previous selection and exit function early
if (chosenValue == "") {
$("#" + productID + "-result").remove();
return;
}
// Check if a results row exists
if ($("#" + productID + "-result").length == 0) {
// Create row if it does not exist
$("table.result").append("<tr id='" + productID + "-result'><td>" + productName + "</td><td class='choice'>Choice: " + chosenOption + "</td></tr>");
} else {
// Update choice if it does exist
$("#" + productID + "-result .choice").html("Choice: " + chosenOption);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr id="product1">
<td class="cell1">1</td>
<td class="cell2">111</td>
<td class="cell3">2018-12-22</td>
<td class="cell4">Apples</td>
<td class="liga">France</td>
<td>
<select class="cell-select">
<option value="" selected="">Select one</option>
<option value="1.4">A</option>
<option value="2.3">B</option>
<option value="3.2">C</option>
<option value="1.5">D</option>
</select>
</td>
</tr>
<tr id="product2">
<td class="cell1">2</td>
<td class="cell2">222</td>
<td class="cell3">2018-12-23</td>
<td class="cell4">Oranges</td>
<td class="liga">Austria</td>
<td>
<select class="cell-select">
<option value="" selected="">Select one</option>
<option value="1.1">X</option>
<option value="4.3">Y</option>
<option value="2.2">Z</option>
<option value="3.5">W</option>
</select>
</td>
</tr>
<tr id="product3">
<td class="cell1">3</td>
<td class="cell2">222</td>
<td class="cell3">2018-12-24</td>
<td class="cell4">Bananas</td>
<td class="liga">Germany</td>
<td>
<select class="cell-select">
<option value="" selected="">Select one</option>
<option value="2.1">L</option>
<option value="3.5">M</option>
<option value="4.1">N</option>
<option value="2.2">Q</option>
</select>
</td>
</tr>
</table>
<table class="result">
<tr>
<td class="newcell1"></td>
<td class="newcell2"></td>
<td class="newcell3"></td>
</tr>
</table>