La propiedad de sólo lectura NonDocumentTypeChildNode.previousElementSibling
retorna el Element
predecesor inmediato al especificado dentro de la lista de hijos de su padre, o bien null
si el elemento especificado es el primero de dicha lista.
Sintaxis
prevNode = elementNodeReference.previousElementSibling;
Ejemplo
<div id="div-01">Aquí está div-01</div>
<div id="div-02">Aquí está div-02</div>
<li>Esto es un elemento de lista</li>
<li>Esto es otro elemento de lista</li>
<div id="div-03">Aquí esta div-03</div>
<script>
var el = document.getElementById('div-03').previousElementSibling;
document.write('<p>Hermanos de div-03</p><ol>');
while (el) {
document.write('<li>' + el.nodeName + '</li>');
el = el.previousElementSibling;
}
document.write('</ol>');
</script>
Este ejemplo muestra lo siguiente en la página cuando carga:
Hermanos de div-03 1. LI 2. LI 3. DIV 4. DIV
Polyfill para Internet Explorer 8
Esta propiedad no está soportada con anterioridad a IE9, así que puede utilizarse el siguiente fragmento para añadri el soporte a IE8:
// Source: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
if(!("previousElementSibling" in document.documentElement)){
Object.defineProperty(Element.prototype, "previousElementSibling", {
get: function(){
var e = this.previousSibling;
while(e && 1 !== e.nodeType)
e = e.previousSibling;
return e;
}
});
}
Especificaciones
Especificación | Estado | Observaciones |
---|---|---|
DOM La definición de 'NonDocumentTypeChildNode.previousElementSibling' en esta especificación. |
Living Standard | Dividió el interfaz ElementTraversal en ChildNode , ParentNode , y NonDocumentTypeChildNode . Este método queda ahora definida en el primero.Los interfaces Element y CharacterData implementaron la nueva interfaz. |
Element Traversal Specification La definición de 'ElementTraversal.previousElementSibling' en esta especificación. |
Obsolete | Añadida su definición inicial al interfaz puro ElementTraversal y lo usa en Element . |
Compatibilidad con navegadores
We're converting our compatibility data into a machine-readable JSON format.
This compatibility table still uses the old format,
because we haven't yet converted the data it contains.
Find out how you can help!
Prestación | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte básico (en Element ) |
4 | 3.5 (1.9.1) | 9 | 9.8 | 4 |
Soporte en CharacterData |
29.0 | 25 (25) [1] | Sin soporte | 16.0 | Sin soporte |
Prestación | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Soporte básico (en Element ) |
(Yes) | 1.0 (1.9.1) | (Yes) | 9.8 | (Yes) |
Soporte en CharacterData |
(Yes) | 25.0 (25) | Sin soporte | 16.0 | Sin soporte |
[1] Firefox 25 también añadía esta propiedad a DocumentType
, y fue eliminada en Firefox 28 debido a problemas de compatibildad.
Ver también
- El interfaz puro
NonDocumentTypeChildNode
. -
Tipos de objetos que implementan este interfaz puro:
CharacterData
, yElement
.