从位于特定行的表中选择文本输入

时间:2012-08-08 09:39:34

标签: jquery

我有这样的表 -

<table class='table'>
  <tr>
   <td class="td"><input type="text" name="name<%=f.getId()%>" value="<%=f.getName()%>"/>      
   </td>
   <td class="td"><input type="text" id="field_length" size="3" name="length<%=f.getId()%>" value="<%=f.getLength()%>"/></td>
   <td class="td"><input type="text" name="tooltip<%=f.getId()%>" value="<%=f.getToolTip()%>"/></td>
  </tr>
  <tr>
   same like the previous.......
  </tr>
  <tr>
    same like previous....
  </tr>

现在我想更改位于第二行的文本框中的值为id“field_length”。我试着使用jquery来做到这一点。

$(‘tr:nth-child(2) input:text#field_length’).val(10);

但这不起作用。任何人都能为我提供一些帮助。

3 个答案:

答案 0 :(得分:0)

ID必须是唯一的,您可以使用id选择器选择元素:

$('#field_length').val(10)
  

我需要的是更改除第一行之外的所有文本框的值。

您可以尝试:

$('input:not(:first)').val(10)

答案 1 :(得分:0)

你的第一个td以另一个td而不是/ td结束。 顺便说一下,正如你解释了如何构建你的表,你会得到几个具有相同ID的元素,这是不允许的,ID应该是唯一的,正如Raminson所说。 最后,您可以尝试使用each()。如果你需要我,我会在这里发帖。

答案 2 :(得分:0)

使用此选项,只需选择名称以length开头的输入,而不是错误的ID构造。元素名称的第一部分是固定的......如果您想使用此解决方案,则可以删除ID。

$("table tr:nth-child(2) input:text[name^=length]").val(10);

Fiddle sample