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

标签 ajax jquery

我想对 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/

相关文章:

jquery - 有没有办法为 IE 填充 "dd-MON-yyyy"日期格式

javascript - 如何遍历表行,更改类,并使用 "n"行数并了解每行中第一个单元格的值来完成所有操作

javascript - Toggle Animate css classes on slick carousel slide change

javascript - PHP 和 jQuery 与 AJAX 上传不工作

javascript - 使用 Ajax 更新 Github 问题正文

jQuery .on 类失败

javascript - 调用 jQuery 的 SlideUp 函数时,在视口(viewport)中保留单击的链接

javascript - 如何从 .env 文件安全地检索 API key 到 javascript View - Laravel

javascript - 提交按钮在包含带有 foreach 的表格的表单中不起作用

php - 单击 "Like"时,使用 ajax 异步更新 mysql 字段