我不知道这是否可行,因为我对JSON和jQuery很新。这是我的两个脚本:
$.getJSON('http://shop.com/test/?format=json', function(data){
$.each(data.textpage, function(index, text){
$('<div></div>').html('' + text + '').appendTo('.verzendkosten');
});
});
和
$.getJSON('http://shop.com/vraag/?format=json', function(data){
$.each(data.textpage, function(index, text){
$('<div></div>').html('' + text + '').appendTo('.eigenschappen');
});
});
是否可以将这两者结合起来?这两个脚本都有效,但我很好奇这些脚本是如何组合的。
答案 0 :(得分:1)
不确定你的意思是合并。我假设您想要删除两个片段中的duplcate代码。
将其包装到通用的可重用函数中,并将页面名称和类名称作为参数
传递function DoSomethingGreat(page,targetClass)
{
$.getJSON('http://shop.com/'+page+'/?format=json', function(data){
$.each(data.textpage, function(index, text){
$('<div></div>').html('' + text + '').appendTo(targetClass);
});
});
}
并将其称为
DoSomethingGreat('test','.verzendkosten')
和
DoSomethingGreat('vraag','.eigenschappen')
适用的地方
编辑:根据评论,
如果要在加载某些页面时执行这些操作,请使用jQuery dom ready函数。
将其放在要调用它的页面中
$(function(){
DoSomethingGreat('vraag','.eigenschappen')
});
答案 1 :(得分:0)
查看http://api.jquery.com/jQuery.when/
您将能够使用他们的示例来实现此目标,例如:
$.when(
$.getJSON('http://shop.com/test/?format=json'),
$.getJSON('http://shop.com/vraag/?format=json')
).then(function () {
// Do stuff with data
});
使用.then()定义的函数将在getJSON调用完成后执行。
这假设您要“合并”从两个
返回的数据答案 2 :(得分:0)
如果您的服务器可以将两个响应组合成一个,那么是。否则,您需要在jQuery中使用Deferred
功能。
响应可能是这样的:
{"data": {
"kosten": "whatever you would have returned from /test/",
"eigenschappen": "whatever you would have returned from /vraag/"
}}
然后您的JavaScript可以访问这些:
$.each(data.kosten.textpage, ...)
$.each(data.eigenschappen.textpage, ...)
答案 3 :(得分:0)
好的,组合脚本可以通过多种不同的方式完成。最简单的解决方案是使请求URL的变量部分在脚本中真正变量。
但这取决于你所寻找的结果。