gpt4 book ai didi

jquery - JQuery .closest 和 .remove 遇到问题

转载 作者:行者123 更新时间:2023-12-01 06:56:52 26 4
gpt4 key购买 nike

我正在尝试将包含 .closest & .remove 的按钮添加到 .append 中,但只有现有按钮有效。我希望能够单击“新行”按钮并添加一个新行,然后还能够“删除”添加的任何行,但仅删除该行中的行。

按钮

<button id="addLine">New Line</button>

单击时将新表添加到

<div id="orderForm">

这是添加的内容

$('#orderForm').append('<table class="orderLine" width="90%" border="0" cellspacing="0" cellpadding="0"><tr><td><input name="field1" type="text" id="field1" size="25" tabindex="1"></td><td><button id="removeLine">remove()</button></td></tr></table>'); 

那很好并且可以工作。我还添加了

$("#removeLine").click(function () {
$('#removeLine').closest('.orderLine').remove();
});

但它仅适用于现有的第一行。

这是完整的代码。

<html>
<head>
<?php include '../_includes/jq.inc.php';?><br>
</head>
<body>

<button id="removeAll">Delete All</button>
<button id="addLine">New Line</button>

<div id="orderForm">
<table class="orderLine" width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="field1" type="text" id="field1" size="25" tabindex="1"></td>
<td><button id="removeLine">remove()</button></td>
</tr>
</table>
</div>

</body>

<script type="text/javascript">

$("#removeLine").click(function () {
$('#removeLine').closest('.orderLine').remove();
});

<!-- This removes all newLine table rows -->
$("#removeAll").click(function () {
$('.orderLine').remove();
});

<!-- ADDS the 'newLine' table rows -->
$("#addLine").click(function () {

$('#orderForm').append('<table class="orderLine" width="90%" border="0" cellspacing="0" cellpadding="0"><tr><td><input name="field1" type="text" id="field1" size="25" tabindex="1"></td><td><button id="removeLine">remove()</button></td></tr></table>');
});

</script>
</html>

我检查了一遍又一遍,我不知道我做错了什么。有人对此有什么想法吗?

最佳答案

两个元素不能有相同的 id - 使用类和 event delegation :

HTML:

<button class="removeLine">remove()</button>

JS:

$("#orderForm").delegate(".removeLine", "click", function () {
$(this).closest('.orderLine').remove();
});

委托(delegate)允许您监听由尚未添加到文档中的元素触发的事件。在本例中,它将一个处理程序附加到 orderForm,该处理程序监听当前存在或将来添加的 .removeLine 元素上触发的点击事件。

关于jquery - JQuery .closest 和 .remove 遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com