2010-03-02 41 views

Trả lời

29

Bạn có thể sử dụng phương thức up. Nó không hoàn toàn tương đương, vì closest cũng xem xét phần tử hiện tại. Vì vậy, bạn sẽ cần phải đầu tiên thử nghiệm thành phần được chọn của bạn để xem nếu nó phù hợp với tiêu chí của bạn, nếu không, sử dụng up -method:

jQuery: 
return $('#id').closest('li'); 

Prototype: 
var element = $('id') 
return element.match('li') ? element : element.up('li'); 
} 

So sánh:

.closest()

  • Bắt đầu với các yếu tố hiện
  • Travels lên cây DOM cho đến khi nó tìm thấy một phù hợp cho bộ chọn cung cấp
  • .210
  • Returns một đối tượng jQuery có chứa zero hoặc một yếu tố

.up()

  • Bắt đầu với các yếu tố phụ huynh
  • Travels lên cây DOM cho đến khi nó tìm thấy một trận đấu cho bộ chọn được cung cấp
  • Trả về đối tượng Element mở rộng hoặc không xác định nếu đối tượng đó không khớp với

Bạn có thể dễ dàng mở rộng Nguyên mẫu để bao gồm phương pháp này cho tất cả các thành phần như sau:

// Adds a closest-method (equivalent to the jQuery method) to all 
// extended Prototype DOM elements 
Element.addMethods({ 
    closest: function closest (element, cssRule) { 
     var $element = $(element); 
     // Return if we don't find an element to work with. 
     if(!$element) { 
     return; 
     } 
     return $element.match(cssRule) ? $element : $element.up(cssRule); 
    } 
}); 
2

.next('.className') hoặc .next('divId')

Ngoài ra còn có .previous(), .down().up(), tùy thuộc vào nơi bạn đang tìm kiếm.

Các vấn đề liên quan