2009-10-27 71 views
10

我试图从外部页面使用Ajax/jQuery.ajax函数将页面加载到当前页面。虽然我已经成功地加载了整个外部页面,但我似乎无法加载只是 DIV元素。在Jquery中使用Ajax()函数将外部页面的一部分加载到div

这里是我的代码:

$("a").click(function() { 
    /* grabs URL from HREF attribute then adds an */ 
    /* ID from the DIV I want to grab data from */ 
    var myUrl = $(this).attr("href") + "#external-div"; 
    $.ajax({ 
    url: myUrl, 
    success: function(html) { 
    /* loads external content into current div element */ 
    $("#current-div").append(html); 
    } 
    }); 
    return false; 
}); 

它吸引没有任何麻烦的HREF属性,但“#外部格”不会追加到URL。有任何想法吗?

非常感谢!

〜贾里德克罗斯利

+0

您所请求的网址正在获取“#external-div”,但是无论您要联系的后端都不理解您只需要该一个div。 – wambotron 2009-10-27 00:32:43

回答

11

如果你想只返回该div你可以使用jQuery的load方法简单地加载内容返回到您的#current-div ALA

$("a").click(function() { 
    /* grabs URL from HREF attribute then adds an */ 
    /* ID from the DIV I want to grab data from */ 
    var myUrl = $(this).attr("href") + " #external-div"; 
    $("#current-div").load(myUrl); 
    return false; 
}); 

看看的jQuery Ajax/load documentation

+0

嗨Quintin, 感谢您的快速响应。我不想使用load方法,因为它限制了我可以做什么样的效果链和数据管理,但是现在它是我知道的唯一选项。再次感谢你的回复。 是否有人知道如果Ajax/jQuery.ajax函数将允许我加载外部div? – user196986 2009-10-27 00:51:00

+0

这并非完全正确,您仍然可以为加载方法提供回调并在其中应用链接,但所描述的方案(通过代码)似乎超出了加载可执行的任何内容。除了您发布的内容之外,您是否还有其他特别的事情要做? – 2009-10-27 03:11:53

+0

好点。我想我的问题并不完全完整。加载方法运行良好,但还有两种情况可能会发现我自己。情况1)我可能需要加载XML数据(而不是HTML)和/或对表单执行POST。情景2)对于上面的示例,我想淡出当前内容,加载新内​​容,然后淡入新内容。但是,只要我调用load()方法,它立即加载新内容,而不是等待以前的内容完全淡出。我很抱歉没有更清楚。 – user196986 2009-10-27 15:57:45

相关问题