我有这段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", cache: false, async: false, dataType: "html", success: function(data){ html = data; } }
编辑:您获取html的方式有效,但是不建议这样做。 您无法获取最后一个元素,因为您正在使用filter而不是find,因此您应该具有:
filter
find
var htmlFiltered = $(html).find("#1 .text");
代替
另外,W3C建议不要使用数字ID。
编辑2 :这应该工作:
var htmlFiltered = $(html).filter("#1").find(".text");
希望这可以帮助。干杯