jQuery增量输入的新输入元素的名称数组索引

时间:2014-09-23 04:13:10

标签: php jquery arrays

我在桌子里面有一个表格,如下所示:

<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'

1 个答案:

答案 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>