2010-09-09 28 views

Trả lời

48

Bạn có thể thực hiện việc này chỉ để kiểm tra phần tử nếu đó là con đầu tiên: $(this).is(':first-child'). Các bộ chọn khác như :last-child cũng sẽ hoạt động.

+4

Điều đó sẽ trả về 'true' cho mọi thứ ...': first' sẽ kiểm tra xem nó có phải là mục đầu tiên trong bộ jQuery, tôi tin rằng bạn có thể muốn ': first-child' – gnarf

+11

Ngoài ra,' .not (': trước tiên -child ') 'sẽ vẫn trả về một tập jQuery, không phải là một boolean ...' .is (': không (: con đầu tiên) ') '.... – gnarf

+2

Giải pháp này sẽ trả về nếu phần tử" là " con đầu lòng khi @WorkingHard hỏi khi biết "không phải là" đứa con đầu lòng. Không đề cập rằng về cơ bản tất cả các câu trả lời đã được đưa ra bởi @gnarf. Tôi đã có thể thích @gnarf trả lời này, và rằng người dùng SO đã không bỏ phiếu cho một câu trả lời sai (Nó có ít nhất 3 điểm khi nó đã được tất cả sai). –

4

Nếu bạn sẽ muốn chọn mọi thứ ngoại trừ đứa trẻ đầu tiên, đây là cách thực hiện:

$('#some-parent').children().not(':first') 
0

jQuery .not()

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

': first' không giống như ': first-child', và sử dụng' .not (': first') 'sẽ * remove * mục': first' từ tập hợp. – user113716

27

Bạn chỉ có thể yêu cầu vị trí .index() của nó (so với anh chị em của nó).

$(this).index(); // returns a zero based index position 
+5

Điều thú vị là '.index()' sẽ trả về '0' cho con đầu tiên, là sai, và bất cứ điều gì khác là đúng, do đó,' .index() 'thực sự sẽ trả về true cho bất kỳ thứ gì trừ con đầu tiên. .. Câu trả lời hoàn hảo – gnarf

+1

Tôi nghĩ rằng đó là nhiều hơn một tác dụng phụ của .index(), nhưng thực sự quan sát tốt đẹp. –

+0

Không chắc chắn nếu tôi thấy một lỗi trong jQuery, nhưng tôi có một cái gì đó mà không parentDiv.parent ('td') mà tôi có thể nhìn thấy trong firebug chứa 1 phần tử. parentDiv.parent ('td'). size() là 1, nhưng parentDiv.parent ('td'). index() trả về -1. Có ai biết tại sao không? –

3

Kiểm tra chỉ số

$(this).index() == 0 // is first 
3

Ngoài ra, bạn có thể kiểm tra nếu $(this).prev().length được định nghĩa, như trong:

if (!$(this).prev().length){ //This means $(this is the first child 
    //do stuff 
} 
1

Giữ nó đơn giản, sử dụng DOM


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

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

}); 
+0

Chắc chắn bạn có nghĩa là 'this.previousSibling' không phải' $ (this).previousSibling' ... – gnarf

0
$("li").click(function(e) { 
    if ($(this).index != 0) 
    { 
     /* do something */ 
    } 
}); 
Các vấn đề liên quan