[英]Get selected drop-down value of a row in html table using JavaScript/jQuery
[英]jQuery Clone table row with selected drop down value
我想在克隆新行时将前一行的选定选项值克隆到新的原始数据。
$("#btnAdd").on("click", function() { var $tableBody = $('#tbl').find("tbody"), $trLast = $tableBody.find("tr:last"), $trNew = $trLast.clone(); $trLast.after($trNew); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id='tbl'> <tbody> <tr> <td> <p>Cell3</p> </td> <td> <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> </select> </td> </tr> </tbody> </table> <input type="button" id="btnAdd" value="Add New Row"></button>
我无法复制最后一行选定的下拉列表值,任何解决方案或克隆都不是这样做的方法?
您需要将select
元素值设置为.clone()
故意不复制textarea
动态状态并select
注意:出于性能原因,某些表单元素的动态状态(例如,输入到
textarea
用户数据和对select
进行的用户select
)不会复制到克隆元素中。 当克隆input
元素时,元素的动态状态(例如,输入到 textinput
的用户数据和用户对checkbox
所做的选择)保留在克隆的元素中。
用
$trNew.find('select').val($trLast.find('select').val());
$("#btnAdd").on("click", function() { var $tableBody = $('#tbl').find("tbody"), $trLast = $tableBody.find("tr:last"), $trNew = $trLast.clone(); //Set updated value $trNew.find('select').val($trLast.find('select').val()) $trLast.after($trNew); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id='tbl'> <tbody> <tr> <td> <p>Cell3</p> </td> <td> <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> </select> </td> </tr> </tbody> </table> <input type="button" id="btnAdd" value="Add New Row"></button>
如果 case tr
有多个选择,则可以根据元素的index
获取值。
$trNew.find('select').val(function(index, value) {
return $trLast.find('select').eq(index).val();
});
$("#btnAdd").on("click", function() { var $tableBody = $('#tbl').find("tbody"), $trLast = $tableBody.find("tr:last"), $trNew = $trLast.clone(); $trNew.find('select').val(function(index, value) { return $trLast.find('select').eq(index).val(); }); $trLast.after($trNew); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id='tbl'> <tbody> <tr> <td> <p>Cell3</p> </td> <td> <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> </select> </td> <td> <select> <option value="red">Red</option> <option value="blue">Blue</option> </select> </td> </tr> </tbody> </table> <input type="button" id="btnAdd" value="Add New Row"></button>
您可以在追加之前修改$trNew
元素。
在你的情况下:
$('select', $trNew).val($('select', $trLast).val());
我的解决方案是
$trNew.find('.bootstrap-select').next().remove();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.