gpt4 book ai didi

javascript函数只删除第一行html

转载 作者:可可西里 更新时间:2023-11-01 12:57:12 25 4
gpt4 key购买 nike

我有这个地址簿,可以在我的 .我的添加按钮工作得很好。当我尝试拥有 2 个或更多联系人时,似乎我的 DELETE 按钮仅适用于第一行的任何内容。但我实际上希望它删除此按钮所在的当前行。通过删除一行,我还希望更新我的“联系人”数组,使该联系人不再存在。有人可以帮我改正吗?

    var addressBook = (function() {

var contact = [{
firstName: 'myName',
lastName: 'myLastName',
number: '123456789',
email: 'myEmail@gmail.com'
}];

var table = $('#table');
var tbody = table.find('tbody');
var form = $('#createForm');
var $firstName = form.find('#firstName');
var $lastName = form.find('#lastName');
var $number = form.find('#number');
var $email = form.find('#email');
var $addButton = form.find('#addButton');
var $deleteButton = table.find('#deleteButton');
var $input = table.find(".edit");

$addButton.on('click', addContact);
table.on('click', '#deleteButton', deleteContact);
addedContact();

function addedContact() {
tbody.html('');
var length = contact.length;
for (var i = 0; i < length; i++) {
tbody.prepend('<tr><td><input class="edit" type="text" value="' + contact[i].firstName + '"></td><td><input class="edit" type="text" value="' + contact[i].lastName + '"></td><td><input class="edit" type="text" value="' + contact[i].number + '"</td><td><input class="edit" type="text" value="' + contact[i].email + '""></td><td><button id="deleteButton"> DELETE </button></td></tr>');
}
}

function addContact() {
var newPerson = {
firstName: $firstName.val(),
lastName: $lastName.val(),
number: $number.val(),
email: $email.val()
};
contact.push(newPerson);
$firstName.val('');
$lastName.val('');
$number.val('');
$email.val('');
addedContact()
}

function deleteContact(event) {
var element = event.target.closest('tr');
var i = tbody.find('td').index(element);
contact.splice(i, 1);
addedContact();
}

return {
addContact: addContact,
deleteContact: deleteContact
};
})();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button class = "create">Create contact</button>

<!-- Create Contact Form-->
<div align=center id="createForm">
<br><input placeholder="First Name" id="firstName" /><br><br>
<input placeholder="Last Name" id="lastName" /><br><br>
<input placeholder="Phone number" id="number" /><br><br>
<input placeholder="Email Address" type="email" id="email" /><br><br>
<input id="addButton" type="submit" value="CREATE" /><br><br>
</div>

<div class = "search">Search contacts</div>

<table id="table">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Phone Number</th>
<th>Email Address</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>

最佳答案

这个怎么样?看起来在您的删除方法中,您的目标是 td 而不是 tr,然后调用用于构建行的函数来添加联系人数据?

var addressBook = (function() {

var contact = [{
firstName: 'myName',
lastName: 'myLastName',
number: '123456789',
email: 'myEmail@gmail.com'
}];

var table = $('#table');
var tbody = table.find('tbody');
var form = $('#createForm');
var $firstName = form.find('#firstName');
var $lastName = form.find('#lastName');
var $number = form.find('#number');
var $email = form.find('#email');
var $addButton = form.find('#addButton');
var $deleteButton = table.find('#deleteButton');
var $input = table.find(".edit");

$addButton.on('click', addContact);
table.on('click', '#deleteButton', deleteContact);
addedContact();

function addedContact() {
tbody.html('');
var length = contact.length;
for (var i = 0; i < length; i++) {
tbody.prepend('<tr><td><input class="edit" type="text" value="' + contact[i].firstName + '"></td><td><input class="edit" type="text" value="' + contact[i].lastName + '"></td><td><input class="edit" type="text" value="' + contact[i].number + '"</td><td><input class="edit" type="text" value="' + contact[i].email + '""></td><td><button id="deleteButton"> DELETE </button></td></tr>');
}
}

function addContact() {
var newPerson = {
firstName: $firstName.val(),
lastName: $lastName.val(),
number: $number.val(),
email: $email.val()
};
contact.push(newPerson);
$firstName.val('');
$lastName.val('');
$number.val('');
$email.val('');
addedContact()
}

function deleteContact(event) {
var element = event.target.closest('tr');
element.remove();
}

return {
addContact: addContact,
deleteContact: deleteContact
};
})();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="create">Create contact</button>

<!-- Create Contact Form-->
<div align=center id="createForm">
<br><input placeholder="First Name" id="firstName" /><br><br>
<input placeholder="Last Name" id="lastName" /><br><br>
<input placeholder="Phone number" id="number" /><br><br>
<input placeholder="Email Address" type="email" id="email" /><br><br>
<input id="addButton" type="submit" value="CREATE" /><br><br>
</div>

<div class="search">Search contacts</div>

<table id="table">
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Phone Number</th>
<th>Email Address</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>

关于javascript函数只删除第一行html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48171072/

25 4 0
文章推荐: javascript - 在我的 HTML 页面中输出 `\xA0` 或 `\xC2A0` 是否可以,还是我需要将其转义为 ` ` ?
文章推荐: php - 带 CodeIgniter 的 Paypal IPN
文章推荐: PHP "apc_store"和 "apc_fetch"未按预期工作
文章推荐: python - 跨
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com