我有一个jQuery代码如下;
var favorites = $("#favorites");
var favoritesFooter = $("#favoritesFooter",favorites);
我不确定逗号在第2个语句$("#favoritesFooter",favorites);
以下陈述在上述情况下会做什么或代表什么;
favoritesFooter.prev().after(newHTML);
答案 0 :(得分:7)
这是$()
的第二个参数。正如documentation:
选择器上下文
默认情况下,选择器在DOM中从文档根开始执行搜索。但是,通过使用$()函数的可选第二个参数,可以为搜索提供备用上下文。例如,要在事件处理程序中进行搜索,可以限制搜索:
$('div.foo').click(function() {
$('span', this).addClass('bar');
});
当搜索范围选择器仅限于此上下文时,只有单击元素中的跨度才会获得附加类。
在内部,选择器上下文是使用.find()方法实现的,所以$('span',this)相当于$(this).find('span')。
答案 1 :(得分:3)
第二个语句意味着“在jQuery对象favoritesFooter
中搜索ID为favorites
的元素”。
当你处理ID应该是唯一的时,它是没有意义的 - $("#favoritesFooter")
是最好的做法。
关于 favoritesFooter.prev()
它也没有意义,假设ID是唯一的,因此你只有一个元素的集合,因此prev()
将返回空的jQuery集合。
.prev()
将采用之前的DOM元素 - 在您的情况下,它会在newHTML
元素之前推送favoritesFooter
。