jQuery冒号选择器

时间:2011-08-07 18:19:44

标签: javascript jquery dom jquery-selectors

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

  

:prev,:next,:last

我的问题是:

  1. 它们真的是jQuery的一部分,因为它们实际上是用在DOM元素上的吗?
  2. 我们似乎在jQuery prev()next()last()中也有相同的方法。有两种不同的方式是什么目的?
  3. 任何基本的例子都会非常棒。

4 个答案:

答案 0 :(得分:10)

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

:last选择器相对于.last()方法的一个目的是,您可以使用它来过滤选择器序列中间的元素,如下所示(请注意:last和{ {1}}不一样):

:last-child

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

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

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

答案 1 :(得分:2)

以下是我使用各种选择器和遍历对象制作滑块的方法。

$('#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();
      });
    }
  }

});

答案 2 :(得分:1)

  1. 是的,他们在documentation
  2. 有时你不能总是在选择器中包含所有内容,或者想要选择器的细分。
  3. e.g。

    $(".mylist").each(function(){
      $(this).css("color","red");
      $(this).next().show();
    })
    

答案 3 :(得分:1)

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

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