()上的jQuery无法删除元素
我正在做一个动态表格来收集乘客的个人数据。 此表上面有一个控件,用于在末尾添加更多行,每一行都是第一行的副本,并且该行的最后一个元素是我用作删除该行的控件的链接 问题是,只有第一行,即不是动态创建的行,是唯一一个实际工作的行,它能够删除自身 因此,由于缺少初始行,页面甚至停止创建新行(但这是xD的另一个问题) 这是我用来删除行的代码:()上的jQuery无法删除元素,jquery,dynamic,Jquery,Dynamic,我正在做一个动态表格来收集乘客的个人数据。 此表上面有一个控件,用于在末尾添加更多行,每一行都是第一行的副本,并且该行的最后一个元素是我用作删除该行的控件的链接 问题是,只有第一行,即不是动态创建的行,是唯一一个实际工作的行,它能够删除自身 因此,由于缺少初始行,页面甚至停止创建新行(但这是xD的另一个问题) 这是我用来删除行的代码: $('.remove').on("click",function(event){ event.preventDefault; $(this).pa
$('.remove').on("click",function(event){
event.preventDefault;
$(this).parent().parent().remove();
//alert(str);
newRowNum -= 1;
});
如果您需要查看,请访问以下实时站点:
.on()
事件仅绑定到最初在DOM中使用默认语法的元素。如果要将事件委托给其他元素,则需要有第二个选择器。
<table id="test">
<tr>
<td>A</td>
<td><a>Click</a></td>
</tr>
<tr>
<td>B</td>
<td><a>Click</a></td>
</tr>
</table>
<p>
<a id="insert">Copy</a>
</p>
<script type="text/javascript">
$(document).ready(function(){
$("#test").find("a").click(function(){
$(this).parents("tr").remove();
});
$("#insert").click(function(){
$("#test tr").first().clone(true).appendTo("#test");
});
});
</script>
A.
编辑:将克隆功能添加到小提琴中。返回到使用克隆技术,但使用.clone(true)以便它也复制事件处理程序。您可以尝试以下代码:
$("#tabdata").on("click", ".remove", function(event){
event.preventDefault;
$(this).parent().parent().remove();
newRowNum -= 1;
});
Marcos,请编辑您的问题,使其包含足够的HTML,以便我们查看.remove元素及其父元素的父元素的外观。请注意,event.preventDefault
没有任何作用,因为缺少括号(应该是event.preventDefault()
)。您的代码将仅适用于类为“remove”的元素最初出现在页面中。要将其应用于新元素,您必须将此选择器放在子体部分:$(选择器).on('click','.remove',function(){…})代码>。请参见下面我的答案。thx,但它没有起作用,它只是执行相同的操作,动态创建的行根本不受影响(@MarcosVargasMoran:我忘了修复我的fiddle链接。现在试试。如果html()???var addRow=$(“#tabdata tbody”),那么它将是克隆。首先().clone();然后追加(addRow)??是的,但别忘了添加true。这意味着它复制样式、数据,最重要的是(在本例中)事件处理程序。当您使用现有代码复制行时,您没有将事件处理程序附加到“删除”按钮。使用.clone(true),您不需要:)dude,我使用clone做了很多尝试,但都没有成功,我选择的答案成功了,使用clone()创建,或者使用简单的html()。不管怎样,thaks for your response我现在使用html()离开;D.不用担心,伙计-只要你让它工作起来,这是最重要的:)我没有明白,但在“长”(不是那么长的xD)文档的末尾,答案是,最后一个例子,创建了新元素,正如你所说的,元素也有能力创建新元素,:D。