我有一个表,用户可以在其中选择一行,当他们这样做时,行条目的主键被保存到一个集合中,但是,如果他们再次选择它,我想从集合中删除该值。有人知道应该怎么做吗?
JS & JQ
let bill = new Set()
$("body").on('click', '#food_table tbody tr', function() {
var key = $(this).find(".key").text();
var keyInt = parseInt(key)
console.log(keyInt)
bill.forEach(function(item) {
if (item === keyInt) {
bill.delete(item);
} else {
bill.add(keyInt)
}
});
console.log(bill)
});
当我运行它时,我没有收到任何错误,但“账单”集仍然是空的。
必要时用 html
<table class="table table table-borderless" id="food_table">
<thead>
<tr>
<th></th>
<th>Description</th>
<th>Price</th>
</tr>
</thead>
<tbody>
{% for objects in object %}
<tr>
<td class="key">{{ objects.food_item.pk }}</td>
<td>{{ objects.food_item.food }} </td>
<td>{{ objects.food_item.price }}</td>
</tr>
{% endfor %}
</tbody>
</table>
有谁知道如何解决这个问题?
最佳答案
您不需要遍历 Set
。如果设置has
值,删除它。否则,将值添加
到集合中。
if (bill.has(keyInt))
bill.delete(keyInt)
else
bill.add(keyInt)
关于javascript - 如果值已存在于 Javascript 集合中,如何删除该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58707980/