如何找到ID与json键匹配的表tr并填充其他列

时间:2012-10-03 10:19:07

标签: jquery ajax json jsp

我是JQuery和Json的新手,我偶然发现了一些问题。如果有人能给我一些帮助,那就非常感激。我的问题如下:

在我的JSP中,我有一个ajax调用,它将返回给我json对象。我想获取我的json对象中的键,在我的表中找到它的ID与键匹配的tr,并最终用我的json对象中的值填充该特定行中的其他列。

这是我的jquery ajax调用

    $.ajax({
....
....
success:function(data) {    
//Data is a Json Object. The value is for example :{"A":"1","B":"2","C":"3"}    
for(key in data) {
    $("#myTable tr").find(key).find("td").eq(1).html(data[key]); // not working!
}
}
});

,我有以下html块:

<table id = "myTable">
    <tr id = "A">
      <td>Descriptopn.</td>
 <td>...</td> // I want to set this value to be 1
    </tr>

    <tr id = "B">
 <td>Description</td>
 <td>...</td> // I want to set this value to be 2
    </tr>

     <tr id = "C">
  <td>Description</td>
       <td>...</td> // I want to set this value to be 3
</tr>   
 </table> 

我的问题是上面的语法不起作用。有没有办法让这件事做对吗?谢谢。

3 个答案:

答案 0 :(得分:3)

.find()在每个匹配的元素中搜索与给定选择器匹配的后代。由于您要搜索表的后代而不是行的后代,因此请删除原始选择器中的tr。然后,在密钥前加一个'#'标记,使其成为有效的id选择器,其余的将按预期工作。

for(var key in data) {
    $("#myTable").find('#'+key).find("td").eq(1).html(data[key]); // working!
}

答案 1 :(得分:2)

由于您拥有id(它应该是唯一的!),您可以使用以下内容: -

$('#' + key).find('td:eq(1)').text(data[key]);

Here's a fiddle

答案 2 :(得分:0)

$.each(data, function(i, val){

     $('#myTable tr#' + i).find('td:last').text(val);
 });