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

在ajax HTML响应中查找body标签

富建章
2023-03-14
问题内容

我正在进行ajax调用来获取内容并像下面这样添加内容:

$(function(){
    var site = $('input').val();
    $.get('file.php', { site:site }, function(data){
        mas = $(data).find('a');
        mas.map(function(elem, index) {
            divs = $(this).html();
            $('#result').append('' + divs + '');
        })
    }, 'html');
});

问题是,当我进行更改时abody我什么也没得到(没有错误,只有html)。我假设body是一个标签,就像“ a”一样?我究竟做错了什么?

所以这对我有用:

 mas = $(data).find('a');

但这不是:

 mas = $(data).find('body');

问题答案:

恐怕通过jQuery对象(即$(data))解析返回的HTML 以获取body标记注定会失败。

原因是返回的datastring(try
console.log(typeof(data)))。现在,根据jQuery文档,当从包含复杂HTML标记的字符串创建jQuery对象时,诸如的标签body可能会被剥离。发生这种情况的原因是,为了创建对象,实际上将HTML标记插入了DOM,该DOM不允许使用此类附加标签。

文档中的相关报价:

如果将字符串作为参数传递给$(),则jQuery会检查该字符串以查看其外观是否类似于HTML。

[…]如果HTML比不带属性的单个标签复杂,如上面的示例所示,则元素的实际创建由浏览器的innerHTML机制处理。在大多数情况下,jQuery创建一个新元素并将该元素的innerHTML属性设置为传入的HTML代码段。当参数具有单个标签(带有可选的关闭标签或快速关闭标签)时—
$(“ <img / >“)$(” <img>“),$(” <a> </ a>“)或$(” <a>“)— jQuery使用本机JavaScriptcreateElement()函数创建元素

当传递复杂的HTML时,某些浏览器可能不会生成完全复制提供的HTML源代码的DOM。如前所述,jQuery使用浏览器的.innerHTML属性来解析传递的HTML并将其插入到当前文档中。在此过程中,某些浏览器会过滤掉某些元素,例如<html><title><head>元素结果,插入的元素可能不代表所传递的原始字符串。



 类似资料:
  • 问题内容: 当我使用Eclipse向Java类中添加未实现的方法来修复错误时,方法会自动生成并包含 有没有一种简单的方法可以查看包含此注释的所有方法?某种菜单选项? 问题答案: 有没有一种简单的方法可以查看包含此注释的所有方法?某种菜单选项? 是的,请选择以下选项之一: 1)前往( 否 )。新视图将显示默认情况下“控制台”和“问题”选项卡的位置。 2)如其他地方所述,如果您有问题的源文件处于打开状

  • 我有我的AndroidJavaREST API代码与另一个使用JSON对象层次结构的REST API完美配合(又名列表-托架-对象1-托架对象2)。现在我转向一个简化的API(谷歌地图时区——只有一个简单的对象,有5个字段),但我不知道如何将谷歌数据放入我的对象。 我的状态代码是200,我可以在我的logcat中看到googlemaps输出/JSON,但我的对象是空的。我读了这篇文章“0改型2:r

  • 有没有一种简单的方法可以查看包含此注释的所有方法?某种菜单选项?

  • 问题内容: 我需要将数据发布到php页面,然后我想获取响应中某个div的文本,但似乎无法正确设置。我对jQuery不太满意,但是我通常可以很快地解决问题……我已经花了一分钟的时间,尝试了所有我发现的东西……我想我只是缺少了正确的东西组合。 这是输出,红色框是我想要的响应… !! [这张照片看起来真的很小……当我拍的时候并不是那么小。我希望它仍然可读] [1] 这样做: 回应是… 我尝试删除样式部分

  • 自版本我在即使在检查body是否为之前: 在的更改日志中,有一个与空检查相关的条目: 改型现在使用@Nullable注释所有可能的空值。[...] 默认情况下,我们使用@ParametersArennull,除非显式注释为@Nullable,否则所有参数和返回类型都不会为null。 这是你想要的行为吗?在我看来,应该是不可变的,因此我的签入图片1不应该显示警告。 这不是一个关于的问题,而是关于如何