我想对 HTML 返回页面进行 AJAX 调用,提取部分 HTML(使用 jQuery 选择器),然后在基于 jQuery 的 JavaScript 中使用该部分。
AJAX retrieval很简单。这会在回调函数的“data”参数中提供整个 HTML 文档。
我不明白的是如何以有用的方式处理这些数据。我想将它包装在一个新的 jQuery 对象中,然后使用选择器(我相信通过 find() )来获取我想要的部分。一旦我有了它,我将把它传递给另一个 JavaScript 对象以插入到我的文档中。 (这个委托(delegate)就是我首先不使用 jQuery.load() 的原因)。
我看到的 get() 示例似乎都是此的变体:
$('.result').html(data);
...如果我理解正确的话,会将整个返回的文档插入到所选元素中。这不仅是可疑的(这不是插入 <head>
等吗?),而且对于我想要的东西来说它太粗糙了。
非常欢迎提出有关替代方法的建议。
最佳答案
您可以使用标准选择器语法,并传入 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>
的内容在getstuff.php
进入我们的本地页面元素 <div id='mylocaldiv'>...</div>
.
关于ajax - 在 jQuery 中提取 HTML 文档的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2137811/