向现有表中添加行
Adding a row to an existing table
本文关键字:添加行 更新时间:2023-09-26
我正在尝试添加新行,以防单击按钮。该行应添加在按钮所在的行之后。我使用Jquery(1.10.2)来添加新行。
我遇到的问题是.closest
函数并没有像我预期的那样工作。当我把一个硬编码的类粘贴到.insertAfter
时,它就工作了。
这行代码对我不起作用:
$("<tr> <td> Test </td> </tr>").insertAfter($(this).closest('.rowToClone'));
正如我所说,当我把一个类硬编码到.insertAfter()
中时,它确实有效。所以我想我的问题在于.closest()
函数。编辑(完整jquery):
<script>
var dagen = ["Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"];
var selects = [];
var lengte = dagen.length;
function addRow()
{
for(var i = 0; i < lengte; i++)
{
//Get all of the hours selected by the Dropdown boxes
selects[i] = $('select[name="' + dagen[i] + '_uurTot"] option:selected').text();
// clone these boxes and changing the name, adding value of I from the for loop to the name Example Ma1_uurVan
//selectVan = $('select[name="' + dagen[i] + '_uurVan"]').clone();
//selectVan.attr("name", dagen[i] + i + "_uurVan");
// clone these boxes and changing the name, adding value of I from the for loop to the name Example Ma1_uurTot
//selectTot = $('select[name="' + dagen[i] + '_uurTot"]').clone();
//selectVan.attr("name", dagen[i] + i + "_uurVan");
// If the hours those are selected not 22:00, duplicating the row is possible.
if(selects[i] !== '22:00')
{
$("<tr> <td> Test </td> </tr>").insertAfter('.rowToClone'); // Works, but adds row to all the rows with .rowToClone
// $("<tr> <td> Test </td> </tr>").insertAfter($(this).closest('.rowToClone')); // DOES NOT WORK
}
}
}
</script>
这是我的html:
<table id="beschikbaarheid" class="table table-bordered table-striped">
<input type="hidden" name="control" value="admin"/>
<input type="hidden" name="action" value="beschikbaarheid"/>
<thead>
<th class="hidden-xs " style="color:white;">Dag</th>
<th class="hidden-xs " style="color:white;">Van</th>
<th class="hidden-xs " style="color:white;">Tot</th>
<th class="hidden-xs " style="color:white;">Rij aanmaken</th>
<th class="hidden-xs " style="color:white;">Status</th>
</thead>
<tbody>
<tr class="rowToClone">
<td>Maandag <td>
<select name="Ma_uurVan">
<option value="08:00">08:00</option>
<option value="08:30">08:30</option>
<option value="09:00">09:00</option>
<option value="09:30">09:30</option>
<option value="10:00">10:00</option>
<option value="10:30">10:30</option>
<option value="11:00">11:00</option>
<option value="11:30">11:30</option>
<option value="12:00">12:00</option>
<option value="12:30">12:30</option>
<option value="13:00">13:00</option>
<option value="13:30">13:30</option>
<option value="14:00">14:00</option>
<option value="14:30">14:30</option>
<option value="15:00">15:00</option>
<option value="15:30">15:30</option>
<option value="16:00">16:00</option>
<option value="16:30">16:30</option>
<option value="17:00">17:00</option>
<option value="17:30">17:30</option>
<option value="18:00">18:00</option>
<option value="18:30">18:30</option>
<option value="19:00">19:00</option>
<option value="19:30">19:30</option>
<option value="20:00">20:00</option>
<option value="20:30">20:30</option>
<option value="21:00">21:00</option>
<option value="21:30">21:30</option>
<option value="22:00">22:00</option>
</select>
</td>
<td>
<select name="Ma_uurTot">
<option value="08:00">08:00</option>
<option value="08:30">08:30</option>
<option value="09:00">09:00</option>
<option value="09:30">09:30</option>
<option value="10:00">10:00</option>
<option value="10:30">10:30</option>
<option value="11:00">11:00</option>
<option value="11:30">11:30</option>
<option value="12:00">12:00</option>
<option value="12:30">12:30</option>
<option value="13:00">13:00</option>
<option value="13:30">13:30</option>
<option value="14:00">14:00</option>
<option value="14:30">14:30</option>
<option value="15:00">15:00</option>
<option value="15:30">15:30</option>
<option value="16:00">16:00</option>
<option value="16:30">16:30</option>
<option value="17:00">17:00</option>
<option value="17:30">17:30</option>
<option value="18:00">18:00</option>
<option value="18:30">18:30</option>
<option value="19:00">19:00</option>
<option value="19:30">19:30</option>
<option value="20:00">20:00</option>
<option value="20:30">20:30</option>
<option value="21:00">21:00</option>
<option value="21:30">21:30</option>
<option value="22:00">22:00</option>
</select>
</td>
<td>
<button type="button" onclick="addRow()"> Voeg rij toe </button>
</td>
<td>
<select name="StatusMa">
<option>Beschikbaar</option>
<option selected >Niet beschikbaar</option>
</select>
</td>
</tr>
edit:因为html代码的总和很大。我只插入了第一整排。
而不是在HTML:中使用
<button onclick="addRow();">some text here</button>
尝试在js文件中使用:
$(document).ready(function(){
$('button').click(function(){
selects[i] = $('select[name="' + dagen[i] + '_uurTot"] option:selected').text();
// If the hours those are selected not 22:00, duplicating the row is possible.
if(selects[i] !== '22:00')
{
$("<tr> <td> Test </td> </tr>").insertAfter($(this).closest('.rowToClone'));
}
});
});
.parent()
将获得所需项的父项。您可以一直工作到按钮的祖父母,并执行.insertAfter()
将一行添加到表中。您可以在此处看到一个示例:http://jsfiddle.net/2L6b9kvr/1/
在addRow
函数中,我获取按钮的祖父母元素(在本例中,它是tr
)。然后,我在祖父母变量后面插入新的HTML tr
。然后,我将所有.addRow
解除绑定并重新绑定到addRow
函数。
相关文章:
- 如何在Google柱状图中动态添加行/列
- 使用jQuery动态添加表并在其中动态添加行
- Angularjs在当前行位置添加行
- 在change事件javascript上动态添加行
- 当源工作表添加了行时,如何编写在一个工作表中添加行的脚本
- 添加行并运行多个mySQL查询
- 基于用户垂直滚动向HTML表添加行
- 在表中动态添加行
- 在使用 javascript 动态添加行时,我正在增加索引值,但出现错误
- 动态添加行时计数器的增量
- 提交表单时如何在 HTML 表格中添加行
- 按React按钮添加行
- 用于在表中添加行的Javascript代码将单元格中的数据复制到新行中
- 删除添加行
- 动态添加行时,启用/禁用Gridview中的验证程序
- 使用JS向html表添加行
- Datepicker克隆ID在添加行时保持不变
- 如何在文本框vue.js上根据指定的数字添加行
- 如何使用DWR addRows函数在顶部添加行
- 在网格extjs中添加行