如何获取嵌套表tr字段(.find)并使用输入[name]设置值

时间:2016-04-28 17:17:05

标签: jquery html jquery-ui

如何将值设置为嵌套表格的字段?我的表格如下:

<table id="first">
    <tr>
        <td><input type="text" id="type[0]" name="type[0]"/></td>
        <td>
            <table>
            <tr class="list"><td><input type="text" id="type[0].a[0].label" name="type[0].a[0].label"/></td></tr>
            <tr class="list"><td><input type="text" id="type[0].a[1].label" name="type[0].a[1].label"/></td></tr>
            </table>
        </td>
    </tr>
<table>

我正在尝试使用find和input []来设置值,但是它没有这样做。

$("#first").find("table").find("tr:last").find('input[name="type['+i+'].a['+j+'].label"]').val("ABC");

但是能够使用 .find 设置第一个表

$("#first > tbody > tr:last").find('input[name="type['+i+'].a['+j+']"]').val("123");

无法通过类使用jquery查找:

tr.list

我也试过这个,提示未定义

alert($("#first table:last > tr.list").attr("id"));

我的问题是:

  • 如何找到嵌套表?
  • 如何将值设置为嵌套表?
  • 如何设置嵌套表的值是单个还是在arraylist中?

1 个答案:

答案 0 :(得分:1)

您的问题是您需要转义选择器(请查看this answer)。

但为什么不使用id?

$("#type\\[" + i + "\\]\\.a\\[" + j + "\\]\\.label")

$(document).ready(function(){
  var i = 0, j = 1;
  $("#type\\[" + i + "\\]\\.a\\[" + j + "\\]\\.label").val("custom value");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="first">
    <tr>
        <td><input type="text" id="type[0]" name="type[0]"/></td>
        <td>
            <table>
            <tr class="list"><td><input type="text" id="type[0].a[0].label" name="type[0].a[0].label"/></td></tr>
            <tr class="list"><td><input type="text" id="type[0].a[1].label" name="type[0].a[1].label"/></td></tr>
            </table>
        </td>
    </tr>
<table>