小编典典

在jQuery中提取HTML文档的一部分

ajax

我想对返回HTML的页面进行AJAX调用,提取HTML的一部分(使用jQuery选择器),然后在基于jQuery的JavaScript中使用该部分。

AJAX检索是非常简单的。这使我在回调函数的“数据”参数中获得了整个HTML文档。

我不明白的是如何以一种有用的方式处理这些数据。我想将其包装在新的jQuery对象中,然后使用选择器(通过我相信的find())来获取我想要的部分。有了这些信息后,我将其传递给另一个JavaScript对象,以插入到我的文档中。(此委托是为什么我不首先使用jQuery.load()的原因)。

我看到的get()示例似乎都与此有关:

$('.result').html(data);

…如果我理解正确的话,会将 整个 返回的文档插入到所选元素中。不仅可疑(这不是插入<head>等吗?),而且对于我想要的东西来说太粗糙了。

欢迎提出其他替代方法的建议。


阅读 249

收藏
2020-07-26

共1个答案

小编典典

您可以使用标准选择器语法,并将data用作选择器的上下文。data在这种情况下,第二个参数是我们的上下文。

$.post("getstuff.php", function(data){
  var mainDiv = $("#mainDiv", data); // finds <div id='mainDiv'>...</div>
}, "html");

这等效于:

$(data).find("#mainDiv");

根据您打算如何使用它,$.load()可能会是一条更好的方法,因为它允许URL和选择器都可以过滤结果数据,该数据直接传递到调用该方法的元素中:

$("#mylocaldiv").load("getstuff.php #mainDiv");

这会将<div id='mainDiv'>...</div>in 的内容加载getstuff.php到我们的本地页面元素中<div id='mylocaldiv'>...</div>

2020-07-26