如何使用 AJAX 获取不同页面上 div 的 HTML?

11

如何获取位于不同站点上的特定HTML元素的HTML?

解决方案:

$.ajax({
url: 'somefile.html',
success: function(data) {
    data=$(data).find('div#id');
    $('#mydiv').html(data);
    alert('Done.');
 }
});

“另一个页面”是指您自己的页面之一吗?还是来自完全不同网站的页面? - kevin628
非常不可能...除非是相同的Web应用程序/站点,否则由于明显的安全原因,这可能是不可能的。 - Nadir Muzaffar
1
你尝试过什么?(http://whathaveyoutried.com) - sczizzo
“另一个页面”是指同一域名下的另一个路径上的页面。 - Mike Burnwood
5个回答

15

你可以使用$.load方法并添加一个容器

与$.get()不同,.load()方法允许我们指定要插入的远程文档的一部分。

$('#result').load('ajax/test.html #container');

7

发起一个ajax请求到php或其他文件,使用CURL或其他工具获取你想要的页面,并提取div并输出,然后当你收到html时,将其放入页面中的一个div中。

    $.ajax({
    url: 'somefile.html',
    success: function(data) {
                    data=$(data).find('div#id');
        $('#mydiv').html(data);
        alert('Done.');
     }
    });

为什么要使用如此冗长的代码,当可以用一行jQuery代码完成呢? - gopi1410
只是让他知道所有的选择。学习curl在许多情况下肯定是有帮助的。 - user1415567

6

好的,我会尽力为您翻译。

$('#div_id_in_your_page').load('ajax_page.html #required_div');

针对课程:

$('.div_class_in_your_page').load('ajax_page.html #required_div');

你的 URL 字符串中需要一个空格来选择器。 - Evan Davis
@Mathletics。你可以轻松地为他修复它。 - gdoron
这个可以工作。有没有可能通过类名或仅通过ID选择一个div?我可以使用普通的jQuery选择器吗? - Mike Burnwood
@Sand_Spirit 在左侧部分,您可以使用普通选择器。请查看答案。已更新。 - gopi1410
1
其实,我现在意识到它不起作用。它只是隐藏了我的 div,而没有加载另一个。我该怎么办? - Mike Burnwood
显示剩余5条评论

1

一种方法是:

  • 向服务器端脚本发送ajax调用

  • 该脚本获取远程页面并返回HTML作为响应。(通常首选JSON)

  • 您的页面最终可以访问HTML。


0

你也可以像这样使用。

$.ajax({
   url:"page2.html",
   success:function(response){
      $("#currentDIV").html(response);
   },error:function(){
      alert("error");
   }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接