Как проверить, не является ли элемент первым дочерним? - PullRequest
29 голосов
/ 09 сентября 2010

Как вы узнаете, что текущий элемент не является первым дочерним элементом?

Должно работать с $(this), например:

$("li").click(function(e) {
    if (/* $(this) is not the first-child */)
    {
        /* do something */
    }
});

Ответы [ 9 ]

57 голосов
/ 09 сентября 2010

Вы можете сделать это просто для проверки элемента, если это первый дочерний элемент: $(this).is(':first-child'). Другие селекторы, такие как :last-child, тоже будут работать.

29 голосов
/ 09 сентября 2010

Вы можете просто запросить его .index() позицию (относительно его братьев и сестер).

$(this).index();   // returns a zero based index position
10 голосов
/ 09 сентября 2010

Для всех li в #thing, которые не являются первыми детьми:

$('#thing li:not(:first-child)')

см. http://api.jquery.com/not-selector/

4 голосов
/ 09 сентября 2010

Кроме того, вы можете проверить, определено ли $(this).prev().length, например:

if (!$(this).prev().length){ //This means $(this is the first child
    //do stuff
}
4 голосов
/ 09 сентября 2010

Если вы хотите выбрать все, кроме первого ребенка, вот как это сделать:

3 голосов
/ 09 сентября 2010

Проверьте индекс

$(this).index() == 0 // is first
1 голос
/ 09 сентября 2010

Будьте проще, используйте DOM


$("li").click(function(e) {

    if (this.previousSibling != null)
    {
        /* do something */
    }

});
0 голосов
/ 11 марта 2014
$("li").click(function(e) {
   if ($(this).index != 0 )
  {
      /* do something */
   }
});
0 голосов
/ 09 сентября 2010

jQuery .not ()

$(this).not(':first');
...