js获取json数据,自动添加至表格,如何防止重复

$(function(){
toolbar:[{
text : '查看',
handler:function(){
var selected = $('#executiveTable').datagrid('getSelected');
if (selected) {
wflwEventState = selected.wflwEventState;
$('#saveJRP input[name="flag"]').val('E');
$("#executiveInfo1").dialog('open');
ar params = {"flag": "V", "jrpId": selected.jrpId};
$.signQueryParam("<%=utb.getURL("./executiveQuery.do")%>", params, builderDataTable);
}
}
}]
});
$('#executiveInfo1').dialog({ });
$("#executiveInfo1").dialog('close');
function builderDataTable(rootData, resData){
var subData = resData.wffIcoll;
var tBody = $("#viewTable tbody");
for ( var i = 0; i < subData.length; i++) {
var cellVaues = subData[i];
var trStr = "<tr>";
trStr += "<td style='padding:5px;height:25px'>审核人:"+cellVaues.wffCreusr +"  状态:"

+cellVaues.wffState +"</td>";
trStr += "</tr>";
trStr += "<td style='padding:5px;height:25px'>" + decodeURI(cellVaues.wffContent) + "</td>";
trStr += "</tr>";
tBody.append(trStr);
}
}
html代码:表格嵌套在div里
<div style="height:200px;overflow:auto;">
<table id="viewTable" class="viewTable" border="0" cellspacing="0" cellpadding="0" width="100%" style="margin:

auto; text-align: left;">
<tbody>
</tbody>
</table>
</div>
每次点击“查看”,数据重复往表格后添加,如图所示,第一次单击“查看”,表格出现第一部分内容,第二次单击“查看”,并没有刷新,而是在后面重复追加了,我是需要实现清空么,该如何实现?

第1个回答  2021-11-24
一、使用js获取接口数据的方法

①$get(url,[data],[callback])

url:请求的地址;data:请求数据的列表;callback:请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个为服务器的状态,是可选参数。

其中服务器返回数据的格式其实是字符串形式,并不是我们想要的JSON数据格式。上例子:

var url3 = 'http://mshop.gemstc.com/ApiService/msgget.php';
$.get(url3,function(data){
alert(data);

});
此时如果对data采用json解析数据,得到的值为undefined。所以我们使用这种get方法获取到的值要是JSON格式,需要定义获取的数据类型为json格式,上例子:
var url3 = 'http://mshop.gemstc.com/ApiService/msgget.php';
$.get(url3,function(data){
$('#result').append('
interval:'+data.name+'
') //此时返回的是JSON格式的内容,例:我们可以使用data.name获取到name字段的值并输出。

}, 'json');

②$post(url,[data],[callback],[type])
post方法中多了一个type:获取数据的类型格式,post其实和get是一样的用法,type不定义,返回的是字符串类型的,定义为json格式,返回的就是json格式的数据,此处可以仿照上面的get方法,把get改成post就搞定了,就不多说了。
第2个回答  2015-11-09
根据json数据的格式,需要循环每组数据然后通过字段取出即可。
然后将取出的数据拼接成字符串插入html对象中。
var json_str = [{"id":1,"name":"name1"},{"id":2,"name":"name2"},{"id":1,"name":"name1"}];// 定义的json数据的字符串
str = "";
json_demo=eval("+json_str+")//将json字符串装换成js对象
for(var i=0;i<json_demo.length;i++){//使用for循环遍历上面定义的json对象
alert(json_demo[i].id);//取出每组的id
alert(json_demo[i].name);//取出每组的name
str += 'id:'+json_demo[i].id + 'name:'+json_demo[i].name;//将取出的数据拼接成字符串
}
alert(str);//弹出拼接好的字符串查看结果
第3个回答  2012-12-31
var subData = resData.wffIcoll;
var tBody = $("#viewTable tbody");
在后面加上
$("#viewTable“).children("tr").remove();

将table内所有tr移除本回答被提问者采纳
第4个回答  2012-12-31
把var i = 0; 改为 var i = 1;追问

你这样改,我怎么可能遍历出我要的数据呢,跟这个肯定没有关系的罗