【问题标题】:jquery ajax is loading entire external html rather than targeted divjquery ajax 正在加载整个外部 html 而不是目标 div
【发布时间】:2012-10-20 12:01:50
【问题描述】:

我在外部 html 文件中加载了一个简单的 ajax 请求,但它会拉入整个页面,而不仅仅是我请求的特定 div。这仅使用 .load 有效吗?

 $.ajax({
 url: 't3.html #test',
 success: function(data) {
 $('.incoming').append(data);
 }
 });

【问题讨论】:

  • 这些似乎都不起作用,也许第二个技巧不起作用,因为我正在处理 localhost/tomcat
  • 传递过滤器参数仅适用于负载。

标签: javascript jquery


【解决方案1】:

使用load() 方法,该方法将为您想要的选择器过滤外部页面

$('.incoming').load('t3.html #test');

否则使用其他 AJAX 方法,您需要创建自己的过滤器,它们不会自己解析内容的 url:

$.ajax({
    url: 't3.html',
    success: function(data) {
        var div=$(data).find(' #test'); /* if #test not wrapped in parent use filter instead of find*/
        $('.incoming').append(div);
    }
});

参考:http://api.jquery.com/load/

【讨论】:

  • 我尝试了您的第二个 sn-p,但它不起作用。检查了firebug,没有错误。您的评论虽然有所帮助,但只需要弄清楚我缺少什么。
  • 取决于其他页面的结构。如果#test 没有包裹在body 中,请尝试使用filter 而不是find
  • 逻辑是标准的 jQuery 遍历方法。如果 find() 不起作用,那么您有一个部分 html 页面是有道理的,并且对 ajax 内容这样做并不罕见
猜你喜欢
  • 1970-01-01
  • 2014-09-06
  • 2011-09-21
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多