如何动态地将所选选项添加到表中
how to add selected option to a table dynamically
我想将选择列表中的选定选项添加到自动创建的每行带有删除选项的表中。
因此,当我单击删除选项时,应该在表中删除整行,并且该选项应该再次在选择列表中可用。
我在表格中添加了选择选项,但它没有显示为<td>
,而是显示为<option>
。
我刚刚调整了小提琴,并提供了删除添加的行的选项。两个调整 - 为方便起见,我将添加的选项值作为数据值属性添加到添加的行中,并将类删除添加到Del
列:
var row = $('<tr data-value="' + opt.val() + '"><td>' + opt.val() +
'</td><td></td><td class="delete">Del</td></tr>');
然后我添加了以下函数以从删除行中添加选项并删除该行:
$("#selectDistriList").on("click", ".delete", function () {
dVal = $(this).closest("tr").data("value");
$("#distriList").append('<option value="' + dVal + '">'
+ dVal + '</option>');
$(this).closest("tr").remove();
});
更新:对于评论中的问题,是否可以为每个选项添加一个链接,我刚刚用一些示例链接调整了小提琴。
以下调整:我为每个选项添加了属性data-link
,例如
<option value="A" data-link="http://www.stackoverflow.com">A</option>
将追加到表中的行将调整为将链接作为<tr>
上的data-link
属性,并将链接设置为值:
var row = $('<tr data-value="' + opt.val() + '" data-link="'
+ opt.data("link") + '"><td><a href="' + opt.data("link")
+ '" target="_blank">' + opt.val() + '</a></td><td></td>
<td class="delete">Del</td></tr>');
单击时删除行的函数将进行调整,以将已删除行的data-link
值设置为附加的选项:
$("#selectDistriList").on("click", ".delete", function () {
dVal = $(this).closest("tr").data("value");
dLink = $(this).closest("tr").data("link");
$("#distriList").append('<option value="' + dVal + '" data-link="'
+ dLink + '">' + dVal + '</option>');
$(this).closest("tr").remove();
});
更新:对于评论中的问题如何添加多个选定选项 我刚刚调整了小提琴
对add
功能进行以下调整:
$('#Add').click(function () {
if ($('#distriList option:selected').val() != null) {
$('#distriList option:selected').each(function ()
{
var tempSelect = $(this).val();
var inbtn = $('#Include').val();
var opt = $('#distriList option[value=' + tempSelect + ']').remove();
var row = $('<tr data-value="' + opt.val() + '" data-link="' + opt.data("link") + '"><td><a href="' + opt.data("link") + '" target="_blank">' + opt.val() + '</a></td><td></td><td class="delete">Del</td></tr>');
row.appendTo('#selectDistriList');
$("#distriList").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");
$("#selectDistriList").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");
$("#selectDistriList").val(tempSelect);
});
}
else
{
alert("Before add please select any position.");
}
});
.each()
不是只添加只会添加第一个选定选项的$('#distriList option:selected')
,而是遍历所有选定的选项并添加它们。
供参考:http://api.jquery.com/each/
您要将<option>
标签添加到表中,但它需要<tr>
:
var opt = $('#distriList option:selected').remove();
var row = $('<tr><td>' + opt.val() + '</td><td>Add</td><td>Del</td></tr>');
row.appendTo('#selectDistriList');
请参阅更新的 jsfiddle:http://jsfiddle.net/c8q2sggn/1/。
相关文章:
- 如何为下拉列表的每个选项添加一个属性
- 使用jQuery向“选择选项”添加默认属性
- 将默认选项添加到ng-if
- 从jquery中的select选项添加两个不同的数组值(text&value)
- 为selectize.js选项添加数据属性
- 将select选项添加到id中
- AngularJS ng选项添加了另一个选项
- 将选项添加到插件msDropdown生成的下拉列表的最佳方式是什么
- 将选项添加到多选并设置为选定
- 如何将空白选项添加到木偶收藏视图生成的选择中
- 如何将此选项添加到此图像选取器项目中
- 使用 XHR 更新服务器文件并将选项添加到 html 选择
- 如何使用 JavaScript 将选项添加到 HTML 表单下拉列表中
- 为什么当我将数据选项添加到骨干模型获取时,它不会触发回调
- 如何将下拉列表中的所有选项添加到 php 中的数组中
- 角度JS多选选项添加额外的?选择
- 自动选择<选项>添加到<选择>
- 如何动态地将所选选项添加到表中
- 动态地将选项添加到 Angular 选定的组合框中
- AngularJS:将选项添加到选择而不选择它