当前位置: 首页 > 面试题库 >

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

盖辉
2023-03-14
问题内容

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

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

我不明白的是如何以一种有用的方式处理这些数据。我想将其包装在新的jQuery对象中,然后使用选择器(通过我相信的find())来获取我想要的部分。有了这些信息后,我将其传递给另一个JavaScript对象,以插入到我的文档中。(此委托是为什么我不首先使用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>in 的内容加载getstuff.php到我们的本地页面元素中<div id='mylocaldiv'>...</div>



 类似资料:
  • 下面给出了从HTML文档中提取内容和元数据的程序。 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.tika.exception.TikaException; import org.apache.tika.metadata.Metadata; imp

  • 问题内容: 我正在尝试学习一些漂亮的汤,并从一些iFrame中获取一些html数据-但到目前为止,我还没有取得很大的成功。 因此,解析iFrame本身似乎不是BS4的问题,但是我似乎并没有从中获得嵌入的内容-不管我做什么。 例如,考虑下面的iFrame(这是我在chrome开发人员工具上看到的): 我要提取的内容在哪里。 但是,当我使用以下BS4代码时: 我得到: 换句话说,我得到的iFrame中

  • 8.3. 从 HTML 文档中提取数据 为了从 HTML 文档中提取数据,将 SGMLParser 类进行子类化,然后对想要捕捉的标记或实体定义方法。 从 HTML 文档中提取数据的第一步是得到某个 HTML 文件。如果在您的硬盘里存放着 HTML 文件,您可以使用 file 函数 将它读出来,但是真正有意思的是从实际的网页得到 HTML。 例 8.5. urllib 介绍 >>> import

  • 本文向大家介绍python-xpath获取html文档的部分内容,包括了python-xpath获取html文档的部分内容的使用技巧和注意事项,需要的朋友参考一下 有些时候我在们需要的用正则提取出html中某一个部分的文字内容,如图: 获取dd部分的html文档,我们要通过它的一个属性去确定他的位置才可以拿到他这个部分我们可以看到他的这个属性class='row clearfix ',然后用xpa

  • 问题内容: 我知道这会给我innerHtml。我还需要它的样式(可以通过类的方式定义),可以是内联属性,也可以是单独标签中的所有样式/类。 可能吗? 更新 如果HTML类似于HTML 并且在外部样式表中定义了CSS类,该怎么办? UPDATE 2 对不起,您没有在此澄清 如果这是我的HTML 样式在单独的样式表或头部样式中定义。 然后,当我尝试获取的内部html 或调用任何其他自定义函数时,我需要

  • 问题内容: 我需要提取某个路径的父目录的名称。看起来是这样的: 我正在使用使用文件名(而不是路径)的东西来修改“文件”的内容。我创建了一个函数,该函数会给我所有文件的列表,然后… 我怎样才能做到这一点? 问题答案: 您可以根据需要继续执行多次… 编辑: 从os.path,您可以使用os.path.split或os.path.basename: