我有这个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>
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");
希望这可以帮助.干杯
原文地址:https://www.jb51.cc/jquery/181393.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。