我现在需要从其他页面抓取几个项目,我的jquerycalls看起来像这样
$('.slide1 .pic').load('url div.zoomPad');
$('.slide1 .title').load('url .pname');
$('.slide1 .other').load('url .anotherdiv');
..等等..有没有办法只进行一次调用并抓住所有元素?然后把它们放在我想要的地方?
我打算在7个不同的页面中进行7次调用,所以我认为这样的调用不是一个好主意......应该有一个更干净的方式......你知道吗?答案 0 :(得分:4)
您可以使用.ajax
代替.load
并在success
处理程序中自行处理回复。
$.ajax({...
success: function(data){
$('.slide1 .pic').html($(data).find('div.zoomPad'));
// etc.
...
});
答案 1 :(得分:2)
是的,有较低级别的ajax
功能:
$.ajax({
url: "test.html",
dataType: json
success: function(data){
$('.first').val(data.first);
$('.second').val(data.second);
//...
$('.n').val(data.n); // Sorry for the n part,
// I have a test in Linear algebra soon...
}
});
确保服务器以json
格式返回数据,并且您已准备好以最简单的方式运行。
答案 2 :(得分:1)
尝试这样的事情:
$('<div/>').load('url', function() {
$('.slide1 .pic').html($(this).find('div.zoomPad'));
$('.slide1 .title').html($(this).find('.pname'));
$('.slide1 .other').html($(this).find('.anotherdiv'));
});
基本上,我们执行一个Ajax调用并将响应存储在jQuery对象中。然后我们可以使用.find()
来解析响应以获得我们想要的内容。