【发布时间】:2019-05-18 14:14:19
【问题描述】:
我编写了一些简单的函数来添加订单。我还动态创建了按钮,调用该按钮时将删除当前的 html 元素,该元素是表格行。现在,我一直在寻找所需的当前元素索引,因此我可以使用 splice 从数组中删除它。
const order = [];
const customer = {
name: '',
totalCups: 0
}
$('#btnAdd').click(function() {
debugger
var itemName = $('#customerName');
var itemTotalCups = $('#customerTotalCups');
customer.name = itemName.val();
customer.totalCups = itemTotalCups.val();
// Data structure Queue
order.push(Object.assign({}, customer));
// UI - HTML rendering - start
if (order.length === 1) {
// Create table column name
$('#AllOrders').append('<table id="tbl" class="table table-bordered"><tr><td>Customer</td><td>Cups</td><td></td></tr></table>');
}
var itemElement = `<tr><td>${itemName.val()}</td><td>${itemTotalCups.val()}</td><td><a class='del' href='#'>Cancel order</a></td></tr>`;
$('#tbl').append(itemElement);
// UI - HTML rendering - end
$('.del').click(function(e) {
e.stopImmediatePropagation();
// Delete order object
debugger
//var elm = $(this).parent().text().substr(0, $(this).parent().text().length-1);
console.log(elm);
console.log(order.indexOf(elm));
//order.splice(order.indexOf(elm),1);
//order.splice(2,1);
// Delete HTML element
$(this).parent().parent().remove();
})
// Reset textbox
itemName.val("");
itemTotalCups.val("");
// Optional Design
$('#ViewAllOrders').click();
debugger;
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="customerName" type="text" />
<input id="customerTotalCups" type="number" />
<button id="btnAdd">Add</button>
<div id="AllOrders"></div>
我搜索解决方案,但无法找出下面的注释代码来查找元素
//var elm = $(this).parent().text().substr(0, $(this).parent().text().length-1);
我被困在$('.del').click 事件处理程序中。
【问题讨论】:
-
您的代码没有生成表格。
-
好的,抱歉。让我看看我错过了什么
-
找到了。这是因为我在开始时隐藏了输出。现在好了。该代码有效。只是删除功能没有。
标签: javascript jquery