我想对返回HTML的页面进行AJAX调用,提取HTML的一部分(使用jQuery选择器),然后在基于jQuery的JavaScript中使用该部分。
在AJAX检索是非常简单的。这使我在回调函数的“数据”参数中获得了整个HTML文档。
我不明白的是如何以一种有用的方式处理这些数据。我想将其包装在新的jQuery对象中,然后使用选择器(通过我相信的find())来获取我想要的部分。有了这些信息后,我将其传递给另一个JavaScript对象,以插入到我的文档中。(此委托是为什么我不首先使用jQuery.load()的原因)。
我看到的get()示例似乎都与此有关:
$('.result').html(data);
…如果我理解正确的话,会将 整个 返回的文档插入到所选元素中。不仅可疑(这不是插入<head>等吗?),而且对于我想要的东西来说太粗糙了。
<head>
欢迎提出其他替代方法的建议。
您可以使用标准选择器语法,并将data用作选择器的上下文。data在这种情况下,第二个参数是我们的上下文。
data
$.post("getstuff.php", function(data){ var mainDiv = $("#mainDiv", data); // finds <div id='mainDiv'>...</div> }, "html");
这等效于:
$(data).find("#mainDiv");
根据您打算如何使用它,$.load()可能会是一条更好的方法,因为它允许URL和选择器都可以过滤结果数据,该数据直接传递到调用该方法的元素中:
$.load()
$("#mylocaldiv").load("getstuff.php #mainDiv");
这会将<div id='mainDiv'>...</div>in 的内容加载getstuff.php到我们的本地页面元素中<div id='mylocaldiv'>...</div>。
<div id='mainDiv'>...</div>
getstuff.php
<div id='mylocaldiv'>...</div>