在某人的帮助下,我创建了一个在页面中加载JSON内容的脚本。问题是内容加载的次数太多而不是一次。这是jquery函数,它包含在名为main.js的文件页面的头部中:
function bakVorm(page,targetClass)
{
$.getJSON('http://shop.com/'+page+'/?format=json', function(data){
var text = ''
$.each(data.textpage, function(index, text){
$(text).html('' + text + '').appendTo(targetClass);
});
});
在产品页面上,我尝试使用以下代码加载div中的内容:
$(function(){
bakVorm('vraag','.eigenschappen');
bakVorm('test','.verzendkosten');
});
问题是内容在相应的div中加载了太多次。可能脚本没有停止或什么的。
欢迎任何帮助
答案 0 :(得分:2)
在这一行
$(text).html('' + text + '').appendTo(targetClass);
您正在将文本内容添加到文本中的每个顶级节点,因此如果文本是
<div></div><p></p>
你最终会得到
<div><div></div><p></p></div><p><div></div><p></p></p>
所以省略html部分,只需
$(text).appendTo(targetClass);
答案 1 :(得分:0)
尝试清空代码中的targetClass:
function bakVorm(page,targetClass)
{
$.getJSON('http://shop.com/'+page+'/?format=json', function(data){
var text = ''
$.each(data.textpage, function(index, text){
$(targetClass).empty().append(text);
});
});
或尝试不使用append
function bakVorm(page,targetClass)
{
$.getJSON('http://shop.com/'+page+'/?format=json', function(data){
var text = ''
$.each(data.textpage, function(index, text){
$(targetClass).html(text);
});
});