3 Небольшие изменения
- Объявление элементов вне функции
each()
.Если нет, он сбрасывается для каждого слушателя - Измените функцию
append()
на text()
.
При добавлении будут добавляться элементы при каждом щелчке.Вы хотите заменить элементы при каждом нажатии.
pop()
удалит последний элемент из массива.Вам нужно использовать
splice()
.Сращивание получает 2 значения.Сначала индекс, который вы хотите удалить, количество удаляемых элементов.
с помощью indexOf()
мы можем получить индекс элемента в массиве.
items.splice(items.indexOf(this.value), 1);
Надеюсь, что этопомогает:)
var items = [];
$("#button-list button").each(function(index) {
var toggle = false;
$(this).on("click", function() {
toggle = !toggle;
if (toggle === true)
items.push(this.value);
else
items.splice(items.indexOf(this.value), 1);
//console.log(items);
$("#results").text(items);
});
});
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="button-list">
<button class="w3-button w3-black" value="(1,1)">(1,1)</button>
<button class="w3-button w3-black" value="(2,2)">(2,2)</button>
<button class="w3-button w3-black" value="(3,4)">(3,4)</button>
<button class="w3-button w3-black" value="(5,2)">(5,2)</button>
<button class="w3-button w3-black" value="(3,1)">(3,1)</button>
</div>
<p id="results"></p>