2010-03-02 19 views

Respuesta

29

Puede usar el método up. No es completamente equivalente, ya que closest también considera el elemento actual. Por lo que se necesita para poner a prueba su primer elemento seleccionado para ver si coincide con sus criterios, si no es así, utilice el up -method:

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

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

Comparación:

.closest()

  • comienza con el elemento actual
  • sube por el árbol DOM hasta que se encuentra una coincidencia para el selector suministrado
  • Devuelve un objeto jQuery que contiene cero o un elemento

.up()

  • comienza con el elemento padre
  • sube por el árbol DOM hasta que encuentra a la altura de la selector suministrado
  • Devuelve un objeto elemento extendido, o indefinido si no coincide con

Puede extender fácilmente Prototype para incluir este método para todos los elementos como los siguientes:

// 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') o .next('divId')

También hay .previous(), .down() y .up(), dependiendo de donde usted está buscando.

Cuestiones relacionadas