jQuery 冒号选择器

发布于 2024-11-28 05:45:46 字数 282 浏览 3 评论 0 原文

在 jQuery 中有一些冒号选择器,例如

:上一个,:下一个,:最后一个

我的问题是:

  1. 它们真的是 jQuery 的一部分吗,因为它们实际上用在 DOM 元素上?
  2. 我们在 jQuery prev()next()last() 中似乎也有等效的方法。有两种不同方式的目的是什么?

任何基本的例子都会很棒。

In jQuery there are a few colon selectors like

:prev, :next, :last

My question is:

  1. Are they truly part of jQuery, because they are actually used on DOM elements?
  2. We seem to have equivalent methods as well in jQuery prev(), next(), last(). What is the purpose of having 2 different ways?

Any basic examples would be really great.

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

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

发布评论

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

评论(4

月亮坠入山谷 2024-12-05 05:45:46

jQuery 没有 :prev:next 选择器,我不知道你在哪里遇到它们。不过,有一个 :last 选择器,以及 :first,由 Sizzle 选择器库,由 jQuery 使用。它是一个非标准选择器,不是 CSS 的一部分,因此是在 JavaScript 中实现的。

.last() 方法上使用 :last 选择器的目的之一是,您可以使用它来过滤选择器序列中间的元素,如下所示(请注意:last:last-child 不一样):

$('.a > .b:last > .c')

而不必编写这样的方法链:

$('.a').children('.b').last().children('.c');

顺便说一下,您引用的“冒号选择器”被称为伪类(通俗地但错误地称为“伪选择器”)。

jQuery does not have :prev or :next selectors, I have no idea where you came across them. There is a :last selector, though, as well as :first, provided by the Sizzle selector library, used by jQuery. It is a non-standard selector, not part of CSS, and is thus implemented in JavaScript.

One purpose of the :last selector over the .last() method is so you can use it to filter elements in the middle of a selector sequence, like this (note that :last and :last-child are not the same):

$('.a > .b:last > .c')

Rather than having to write a chain of methods like this:

$('.a').children('.b').last().children('.c');

By the way, the "colon selectors" you refer to are called pseudo-classes (colloquially but incorrectly known as "pseudo-selectors").

思念满溢 2024-12-05 05:45:46

以下是我如何制作带有各种选择器和遍历对象的滑块。

$('#next').click(function () {
  if (!$('*').is(':animated')) {
    if ($('div.display:visible').is(':nth-child(3)')) {

      $('div.display:visible').fadeOut();
      $('div.display:first').fadeIn(function () {
        $(this).children().fadeIn();
      });

    } else {

      $('div.display:visible').fadeOut().next().fadeIn(function () {
        $(this).children().fadeIn();
      });
    }
  }

});

$('#prev').click(function () {
  if (!$('*').is(':animated')) {
    if ($('div.display:visible').is(':nth-child(1)')) {
      $('div.display:visible').fadeOut();
      $('div.display:last').fadeIn(function () {
        $(this).children().fadeIn();
      });

    } else {
      $('div.display:visible').fadeOut().prev().fadeIn(function () {
        $(this).children().fadeIn();
      });
    }
  }

});

Here is how I made a slider with all sorts of selectors and traversing of objects.

$('#next').click(function () {
  if (!$('*').is(':animated')) {
    if ($('div.display:visible').is(':nth-child(3)')) {

      $('div.display:visible').fadeOut();
      $('div.display:first').fadeIn(function () {
        $(this).children().fadeIn();
      });

    } else {

      $('div.display:visible').fadeOut().next().fadeIn(function () {
        $(this).children().fadeIn();
      });
    }
  }

});

$('#prev').click(function () {
  if (!$('*').is(':animated')) {
    if ($('div.display:visible').is(':nth-child(1)')) {
      $('div.display:visible').fadeOut();
      $('div.display:last').fadeIn(function () {
        $(this).children().fadeIn();
      });

    } else {
      $('div.display:visible').fadeOut().prev().fadeIn(function () {
        $(this).children().fadeIn();
      });
    }
  }

});
暗恋未遂 2024-12-05 05:45:46
  1. 是的,它们位于文档
  2. ,有时您不能总是在选择器中包含所有内容或想要选择器的细分。

例如

$(".mylist").each(function(){
  $(this).css("color","red");
  $(this).next().show();
})
  1. yes, they are in the documentation
  2. sometimes you can't always include everything in the selector or want a subdivision of the selector.

e.g.

$(".mylist").each(function(){
  $(this).css("color","red");
  $(this).next().show();
})
成熟的代价 2024-12-05 05:45:46

冒号代表一个过滤器,例如要在下拉列表中获取所选选项,我会使用 $("select option:selected") 或要获取选中的单选框,我会使用 $("input [type=radio]:checked");

没有 :prev 和 :next 过滤器,但您可以在此处找到过滤器的完整列表 http://api.jquery.com/category/selectors/

The colon represents a filter like to get the selected option in a dropdown I would use $("select option:selected") or to get a checked radio box I would use $("input[type=radio]:checked");

There are no :prev and :next filters, but you can find a full list of filters here http://api.jquery.com/category/selectors/

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