rjm*_*rjm 4 javascript ajax jquery filter
我有这个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>
Run Code Online (Sandbox Code Playgroud)
我用一个简单的.ajax调用来获取
var html = $.ajax({
url: "htmlsnippet.html",
cache: false,
async: false,
dataType: "html"
}).responseText;
Run Code Online (Sandbox Code Playgroud)
如果我过滤它:
var htmlFiltered = $(html).filter("#1");
Run Code Online (Sandbox Code Playgroud)
它工作得很好,我得到整个div与id ="1",
但如果我使用:
var htmlFiltered = $(html).filter("#1 .text");
Run Code Online (Sandbox Code Playgroud)
htmlFiltered变量是一个空对象.我无法弄清楚我做错了什么.
Edg*_*ado 12
你应该这样存储它:
$.ajax({
url: "htmlsnippet.html",
cache: false,
async: false,
dataType: "html",
success: function(data){
html = data;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:您获取HTML的方式有效,但不建议这样做.
你不能抓住你的最后一个元素,因为你正在使用filter而不是find,所以你应该:
var htmlFiltered = $(html).find("#1 .text");
Run Code Online (Sandbox Code Playgroud)
代替
var htmlFiltered = $(html).filter("#1 .text");
Run Code Online (Sandbox Code Playgroud)
此外,W3C建议不要使用数字ID.
编辑2:这应该工作:
var htmlFiltered = $(html).filter("#1").find(".text");
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.干杯