【发布时间】:2018-12-19 23:42:26
【问题描述】:
我有一个动态创建的表,在每一行中都有一个按钮可以清除该行。该按钮在第一行中工作正常,但在接下来的行中不执行任何操作。为了解决这个问题,我将按钮设置为在点击时提醒我,但只有第一个按钮正在注册。
我已将按钮更改为 ID 和 Class,但这似乎也没有任何作用。
代码如下:
//dynamically create 4 rows
$(document).ready(function(){
var rowsAdd = $('#addTable tbody >tr');
var rA = rowsAdd.length;
while (rA<5) {
$('#addTable tbody>tr:last').clone().insertAfter('#addTable tbody>tr:last');
rA++;
}
})
//alert on button click
$('.clear').each(function(index){
$(this).on("click",function(){
alert("Button " +index+ " is clicked");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="addTable">
<tbody>
<tr>
<th style="width: 10%">Class #</th>
<th style="width: 30%;">Course Title</th>
<th style="width: 20%;">Catalog Number</th>
<th></th>
</tr>
<div class="addTable">
<tr>
<td class="classNumID"></td>
<td>
<input list="courses" name="courseInput" placeholder="Course" class="courseClass" oninput="UpdateCatNumbers()">
<datalist id="courses" name="courseDatalist">
<!--Filled in script-->
</datalist>
</td>
<td>
<input list="catalogs" name="catalogInput" placeholder="Catalog Number" id="catalogID" class="catClass" oninput="UpdateCourseNames()">
<datalist id="catalogs" name="catalogDatalist">
<!--Filled in script-->
</datalist>
</td>
<td><button class="clear">−</button></td>
</tr>
</div>
【问题讨论】:
-
我确实看过那个帖子,但我已经尝试了建议中的所有内容,但它们仍然不适合我。
-
那么您没有正确实现委托事件侦听器。这仍然是一个重复的问题。
-
在追加动态行后将
$('.clear').each() etc.移动到document.ready()中。
标签: jquery html button html-table onclick