4

我是 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> 

我的问题是上述语法不起作用。有没有办法让这件事变得正确?谢谢你。

4

3 回答 3

3

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

for(var key in data) {
    $("#myTable").find('#'+key).find("td").eq(1).html(data[key]); // working!
}
于 2012-10-03T10:24:00.727 回答
2

既然你有id(而且它应该是独一无二的!),你可以使用以下内容: -

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

这是一个小提琴

于 2012-10-03T10:27:03.000 回答
0
$.each(data, function(i, val){

     $('#myTable tr#' + i).find('td:last').text(val);
 });
于 2012-10-03T10:24:29.550 回答