文档:https://api.jquery.com/find/
从jQuery 1.6 开始,我们还可以使用给定的jQuery集合或元素过滤选择。
将按预期工作:
var attacks = "#incomings_table tr:not(:first,:last)";
$(".paged-nav-item").each(function(){
$.get(this.href,function(data){
$("#incomings_table").find("tr:last").before($(data).find(attacks));
},"html");
});
以下赢了在指定元素之前插入任何内容:
var attacks = $("#incomings_table tr:not(:first,:last)");
$(".paged-nav-item").each(function(){
$.get(this.href,function(data){
$("#incomings_table").find("tr:last").before($(data).find(attacks));
},"html");
});
我尝试使用Jquery对象作为使用相同选择器的不同任务的变量。
这些代码都不会在控制台上出错,并且两者都会被执行,只是后者无法执行.before()
方法,因为它使用的是Jquery对象而不是一个字符串。
我已经看过.before()
的文档,它接受了一个Jquery对象,正如您在$(data)
的代码中看到的那样。所以我只能假设.find()
方法。
我正在使用 Jquery 1.9.1 。问题是什么?
答案 0 :(得分:0)
$("#incomings_table tr:not(:first,:last)")
会找到目前在dom中的元素。但它当时不存在,所以它将为null。所以你应该使用"#incomings_table tr:not(:first,:last)"
。
var data = '<div>' + '<div class="b">' +
+'hi' + '</div>' + '</div>',
$sel = $('.b');
console.log('dom', $('#a').find($sel));
console.log('dom', $(data).find($sel));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="a">
<div class="b">
hi
</div>
</div>
考虑上面的例子,它只会找出dom
元素。
参考:https://learn.jquery.com/using-jquery-core/jquery-object/