este es el
articulo al que haces referencia. lo curioso es que habla del comportamiento de navegadores modernos. con un ejemplo se verá mejor
Cita: <div id="div-01">Here is div-01</div>
<div id="div-02">Here is div-02</div>
<script type="text/javascript">
console.log(document.getElementById('div-01').nextSibling);
console.log(elemAdjacente(document.getElementById( 'div-01'), 'nxt'))
function elemAdjacente(elm, adj) {
if (adj == 'nxt') {
var elemento = elm.nextElementSibling || elm.nextSibling;
} else {
var elemento = elm.previousElementSibling || elm.previousSibling;
}
if (elemento == null || elemento.nodeType != 1) {
return null;
} else {
return elemento;
}
}
</script>
retorna- chrome, ff, ie9 --> #text y <div id="div-02">Here is div-02</div>
- <=ie8 --> [object HTMLDivElement] y [object HTMLDivElement]
en cuanto al problema del usuario se resuelve así
Cita: function mostrar_precio(elemento,precio) {
elemAdjacente(elemento.parentNode, 'nxt').querySelector('span').innerHTML = precio;
}