我在桌子里面有一个表格,如下所示:
<form action="" method="post">
<table>
<tbody class="rowAdder">
<tr>
<td><input name='info[5]' /></td>
<td><input name='other_info[5] /></td>
</tr>
</tbody>
</table>
</form>
我想克隆'tr'元素,在克隆中我想增加索引值。
PHP本身将带有“[]”的输入名称视为数组。但我还没有找到任何方法可以轻松地使用jQuery中的索引值。
我知道我可以使用("input[name$=']']")
查找页面上名称以']'结尾的所有元素,但这对我没有帮助。我不会总是知道“name”元素会是什么样子,因此使用繁琐的字符串索引方法将无法单独工作。虽然,也许是一种更加繁琐的方法。
我只是想找到数组的名称,并在添加行时递增它们。我希望有一种简单,优雅的方式来做到这一点。
var $array_inputs = clone.find("input[name$=']']");
虽然它很笨重,但它可以获得正确的元素。现在我需要将5增加到6'
答案 0 :(得分:1)
我不知道哪种是最佳方式,但很明显,可以使用以下方法完成:
<form action="" method="post">
<table>
<tbody>
<tr>
<td><input name='info[5]' /></td>
<td><input name='other_info[5]' /></td>
</tr>
</tbody>
</table>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var last_child = $('table tbody tr:last-child'); // point the last row
var children_input = last_child.children('td:eq(0)').children('input'); // get the input tag
var index_num = children_input.attr('name'); // get its attr name
var get_index = index_num.split('[').pop().split(']').shift(); // extract the index
alert(get_index);
});
</script>