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

我有这个html:
<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",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");

希望这可以帮助.干杯

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...