Agrego una variante que no requiere id en las capas que contienen el texto
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <title>Ver ocultar detalles usando previousSibling
</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> /*<![CDATA[*/
body{
font-family: arial, sans-serif;
font-size: 11pt;
}
/* propiedades por defecto para las capas que contienen el texto */
.faqs {
text-overflow: ellipsis;
overflow: hidden;
width: 500px;
white-space: nowrap;
padding: 3px;
background: #DFD2C8;
}
.ver{
cursor: pointer;
font-size: 11px;
font-weight: bold;
margin-bottom: 10px;
padding: 3px;
}
/*]]>*/
<script type="text/javascript"> //<![CDATA[
function mostrarOcultar(e){
// identificamos el elemento previo al "mostrar detalles" que se clickea, que por supuesto será un div
if(document.all && document.querySelector && !document.addEventListener){
var p = e.previousSibling; // ie8
}else{
var p = e.previousSibling.previousSibling; // ie9, otros
}
// tomamos una propiedad css del elemento obtenido previamente para evaluarla
// en este caso el 'overflow', que por defecto nuestra class 'faqs' establece como hidden
var miCapa=p.style.overflow;
// ahora, según sea el valor de overflow, invertimos el resto de las propiedades css y el texto a mostrar en el elemento (e) al que se hizo click
if(miCapa=="auto"){
p.style.overflow="hidden";
p.style.whiteSpace = 'nowrap';
e.innerHTML = 'ver detalles';
}else{
p.style.overflow="auto";
p.style.whiteSpace = 'normal';
e.innerHTML = 'ocultar detalles';
}
}
//]]>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod vestibulum elit non condimentum. Pellentesque
vitae adipiscing sem. Phasellus velit enim, consequat id pharetra id, adipiscing in turpis
<div onclick="mostrarOcultar(this)" class="ver">ver detalles
</div> Vestibulum lacus diam, pellentesque in faucibus eget, dapibus sed sem. Integer id justo id tortor varius tempus. Aliquam
dui tellus, consequat sed molestie in, facilisis eget nisi.
<div onclick="mostrarOcultar(this)" class="ver">ver detalles
</div>
Demo
http://foros.emprear.com/javascript/...ssibling.phtml
Saludos