我正在使用jquery用一个带有来自Web服务的数据的表填充div但是我注意到如果我重新加载页面,则div没有被覆盖,而是附加到。我查找了jquery .empty()函数,但它似乎对我不起作用
这是我的代码示例:
Div标签
<div id="AccountGrid" class="AccountGridHolder">
</div>
加载函数的Jquery
$(document).on('pagecontainershow', function (event,ui) {
GetAcount();
});
jquery函数
function GetAcount() {
$('#AccountGrid').empty()
var CompanyID = get_localstorage("CompanyID");
source:
{
$.ajax({
crossDomain: true,
url: "https://webservice/methode",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: "{ 'CompanyID' : '" + CompanyID + "'}",
dataFilter: function (data) { return data; },
success: function (data) {
var Table1 = '<fieldset><legend>Company Name</legend><table id="CompanyRow" class="AccountGrid" ><tr><td>';
Table1 = Table1 + data.d[0] + '</td></tr></table></feildset>';
$(".AccountGridHolder").append(Table1);
},
error: function (Error) {
console.log('CompanyID (fail) = ' + CompanyID);
console.log(Error.status);
console.log(Error.statusText);
console.log(Error.responseText);
}
});
}
}
谁能看到我做错了什么?
答案 0 :(得分:2)
你的选择器错了。如果您想按ID匹配,则应为$('#AccountGrid')
。
答案 1 :(得分:0)
而不是append()
使用html()
,它将取代div的内容。
$(".AccountGridHolder").html(Table1);
答案 2 :(得分:0)
$(".AccountGridHolder").empty();
$(".AccountGridHolder").append(Table1);
相当于
$(".AccountGridHolder").html(Table1);
那么为什么要写两行而不是一行呢?去找后者。
答案 3 :(得分:0)
嗯,我不确定为什么,但当我移动空()行时,它开始工作......这是我现在的代码
function GetAcount() {
var CompanyID = get_localstorage("CompanyID");
source:
{
$.ajax({
crossDomain: true,
url: "https://webservice/methode",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: "{ 'CompanyID' : '" + CompanyID + "'}",
dataFilter: function (data) { return data; },
success: function (data) {
$('#AccountGrid').empty();
var Table1 = '<fieldset><legend>Company Name</legend><table id="CompanyRow" class="AccountGrid" ><tr><td>';
Table1 = Table1 + data.d[0] + '</td></tr></table></fieldset>';
$(".AccountGridHolder").append(Table1);
},
error: function (Error) {
console.log('CompanyID (fail) = ' + CompanyID);
console.log(Error.status);
console.log(Error.statusText);
console.log(Error.responseText);
}
});
}
}
我发现这很奇怪,因为这表明问题是div没有加载但是这段代码只在'pagecontainershow'事件被触发后执行
答案 4 :(得分:-1)
尝试使用.html()而不是.append()
$(".AccountGridHolder").html(Table1);