$() 的第二个参数是什么意思?

发布于 2024-11-28 09:59:50 字数 314 浏览 1 评论 0原文

我有一个 jQuery 代码如下;

var favorites       = $("#favorites");
var favoritesFooter = $("#favoritesFooter",favorites);

我不确定第二条语句中的逗号是什么意思 $("#favoritesFooter",favorites);

另外,以下语句在上述情况下会做什么或代表什么;

favoritesFooter.prev().after(newHTML);

I have a jQuery code as follows;

var favorites       = $("#favorites");
var favoritesFooter = $("#favoritesFooter",favorites);

I am not sure what does the comma mean in the 2nd statement $("#favoritesFooter",favorites);

Also what would the following statement do or represent in the above case;

favoritesFooter.prev().after(newHTML);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

和我恋爱吧 2024-12-05 09:59:50

它是 $() 的第二个参数。正如文档中所述:

选择器上下文

默认情况下,选择器在 DOM 中从文档根开始执行搜索。但是,可以通过使用 $() 函数的可选第二个参数来为搜索提供替代上下文。例如,要在事件处理程序中进行搜索,可以像这样限制搜索:

$('div.foo').click(function() {
  $('span', this).addClass('bar');
});

当跨度选择器的搜索仅限于此上下文时,只有单击的元素内的跨度才会获得附加类。

在内部,选择器上下文是通过 .find() 方法实现的,因此 $('span', this) 相当于 $(this).find('span')。

It's the second parameter to $(). As explained in the documentation:

Selector Context

By default, selectors perform their searches within the DOM starting at the document root. However, an alternate context can be given for the search by using the optional second parameter to the $() function. For example, to do a search within an event handler, the search can be restricted like so:

$('div.foo').click(function() {
  $('span', this).addClass('bar');
});

When the search for the span selector is restricted to the context of this, only spans within the clicked element will get the additional class.

Internally, selector context is implemented with the .find() method, so $('span', this) is equivalent to $(this).find('span').

初熏 2024-12-05 09:59:50

第二条语句的意思是“在 jQuery 对象 favorites 内搜索 ID 为 favoritesFooter 的元素”。

当您处理的 ID 应该是唯一的时,这是没有意义的 - $("#favoritesFooter") 是最佳实践。

关于 favoritesFooter.prev() ,它也是毫无意义的,假设 ID 是唯一的,因此您的集合只有一个元素,因此 prev() 将返回空的 jQuery 集合。

.prev() 将采用前一个 DOM 元素 - 在您的情况下,它将在 favoritesFooter 元素之前推送 newHTML

The second statement means "search for element with ID of favoritesFooter inside the jQuery object favorites".

As you're dealing with ID which should be unique, it's pointless - $("#favoritesFooter") is the best practice.

Regarding favoritesFooter.prev() it's also pointless, assuming the ID is unique so you have collection with only one element thus prev() will return empty jQuery collection.

The .prev() will take the previous DOM element - in your case, it will push newHTML right before the favoritesFooter element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文