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

jQuery / javascript,从ajax响应中过滤html对象

何升
2023-03-14
问题内容

我有这段HT​​ML:

<div id="1">
  <div class="text">
     Text for div 2 
  </div>
<img src="images/image1.jpg"></img>
</div>

<div id="2">
  <div class="text">
    Text in div 2
  </div>
  <img src="images/image2.jpg"></img>
</div>

我通过一个简单的.ajax调用来获取

var html = $.ajax({
         url: "htmlsnippet.html",
         cache: false,
         async: false,
         dataType: "html"
         }).responseText;

如果我用它过滤:

var htmlFiltered = $(html).filter("#1");

它工作正常,我得到整个div的id =“ 1”,
但是如果使用:

var htmlFiltered = $(html).filter("#1 .text");

htmlFiltered变量是一个空对象。我不知道我在做什么错。


问题答案:

您应该这样存储它:

$.ajax({
   url: "htmlsnippet.html",
   cache: false,
   async: false,
   dataType: "html",
   success: function(data){
      html = data;
   }
}

编辑:您获取html的方式有效,但是不建议这样做。
您无法获取最后一个元素,因为您正在使用filter而不是find,因此您应该具有:

var htmlFiltered = $(html).find("#1 .text");

代替

var htmlFiltered = $(html).filter("#1 .text");

另外,W3C建议不要使用数字ID。

编辑2 :这应该工作:

var htmlFiltered = $(html).filter("#1").find(".text");

希望这可以帮助。干杯



 类似资料:
  • 问题内容: 我在使用Javascript的代码中使用AJAX调用。 编辑: 我已经更新了我的回调函数。但是在这里,我收到了选择列表作为[对象节点列表]。现在如何在HTML中显示? 在回调函数中,我现在想以HTML格式接收响应,因此我想解析该HTML响应,以便进一步处理它。我正在使用普通的javascript来做到这一点。如何解析以HTML格式接收的Ajax响应? 问题答案: 创建一个元素并将HTM

  • 问题内容: 我正在尝试使用来自ajax html响应的内容更新div。我相信我的语法正确,但是div内容已替换为整个HTML页面响应,而不仅仅是html响应中选择的div。我究竟做错了什么? 问题答案: 您正在设置HTML格式的内容,然后将其替换为本身,这没有多大意义? 我猜你真正在哪里寻找返回的数据,然后用ajax调用中的html用html 更新DOM中的元素:

  • 问题内容: 我想在javascript /浏览器中启用ajax响应的缓存。 从jquery.ajax docs : 默认情况下,始终发出请求,但浏览器可能会在其缓存之外提供结果。要禁止使用缓存的结果,请将cache设置为false。如果自上次请求以来未修改资产,则导致请求报告失败,请将ifModified设置为true。 但是,这些地址都没有强制缓存。 动机: 我想在我的初始化函数中放入调用,其中

  • 问题内容: 哪种方法更快,要返回JSON中的ajax,然后处理JSON响应以呈现html,或者只是将Ajax响应中的原始html放在一堆中呢? 问题答案: 要看。在这两种情况下,服务器都只是返回带有文本的响应。如果响应的JSON版本比HTML版本需要更多字符,则该响应将需要更长的时间才能传输回客户端,反之亦然。 但是,当然还有服务器端脚本必须完成其工作。在您的情况下,从服务器端脚本生成JSON可能

  • 问题内容: 我们正在对所有的Ajax请求处理都使用Prototype,为了使事情变得简单,我们简单地渲染HTML内容,然后使用以下函数将其分配给适当的div: 但是,有时我需要在HTML响应中执行Javascript,而此方法似乎无法执行此操作。 由于种种原因,我试图将Ajax调用的功能列表保持在最低限度,因此,如果有一种方法可以修改现有功能而又不会破坏当前正在使用的所有位置,或者可以通过一种方式

  • 问题内容: 甚至不确定这是否是标题问题的正确方法。我知道我把AJAX调用弄错了…这是我现在正在做的事情(顺便说一下,我正在使用ASP.NET MVC后端): 我通常将一些数据发布到操作中,该操作将加载我在响应中捕获的视图。它基本上是为操作提供一些数据,并取回一些HTML。 假设我想创建一个经过验证的Ajax调用。如何获得有关错误的验证消息?例如,一个Ajax登录表单。如果无法验证用户,我想告诉他们