我是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>
我的问题是上面的语法不起作用。有没有办法让这件事做对吗?谢谢。
答案 0 :(得分:3)
.find()
在每个匹配的元素中搜索与给定选择器匹配的后代。由于您要搜索表的后代而不是行的后代,因此请删除原始选择器中的tr
。然后,在密钥前加一个'#'
标记,使其成为有效的id选择器,其余的将按预期工作。
for(var key in data) {
$("#myTable").find('#'+key).find("td").eq(1).html(data[key]); // working!
}
答案 1 :(得分:2)
答案 2 :(得分:0)
$.each(data, function(i, val){
$('#myTable tr#' + i).find('td:last').text(val);
});