如何使用jQuery的ajax方法从html获取dom元素?

时间:2011-06-18 15:15:09

标签: javascript jquery ajax

我遇到了一个独特的问题。我正在使用jQuery进行简单的ajax调用来获取html文件的内容。

$.ajax({
  url: "foo.html",
  dataType: "html",
  success: function(data){
    console.log(data);
  }
});

foo.html是一个简单的html文件,其中包含一个名为#mainContainer的主div。我想要做的就是从mainContainer获取所有内容并将它们存储在var中,这样我就可以将它们添加到我页面中的另一个div中。

这是index.html(正在进行通话的文件)。

这是foo.html(我试图调用和解析的文件)。

3 个答案:

答案 0 :(得分:4)

jQuery“.load()”API完全符合您的要求:

$('#the_target_div').load("foo.html #mainContent", function() {
  // stuff to do when content is ready
});

您只需在URL后面添加一个选择器字符串,用空格分隔。

有一点需要注意:如果加载的页面中包含任何重要的JavaScript(在<script>标记中),则以这种方式加载页面时脚本将不会运行。如果您需要这种行为,那么您必须自己提取内容(这是一个小问题),或者让您的服务器完成工作并仅使用您需要的片段进行响应。

一种完全不同的方法是将您的网页加载到隐藏的<iframe>中,然后深入该DOM以找到您想要的内容。然后可以将其复制到主页面中。

答案 1 :(得分:2)

var mainContainerInnerHtml = $(data).find(“#mainContainer).html();

答案 2 :(得分:0)

你不需要得到dom元素。 您可以使用查询replaceWith函数来替换。

就像这样:

$("#data").replaceWith($("#data",ajaxReturnHtml)).serialize();

对我有用。