En realidad no es raro, porque tu estilo display está definido en una regla css, y para acceder al estilo desde javascript en el caso de las reglas se hace de otra manera. Diferente sería si aplicaras el estilo inicial inline, es decir definiéndolo con un atributo style. Un ejemplo de esto que te digo sería este, que como verás sí funciona como esperabas:
Código PHP:
<!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"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Ejercicio 14 - DOM b�sico y atributos XHTML</title>
<script type="text/javascript">
function muestraOculta(id) {
var elemento = document.getElementById('contenidos_'+id);
var enlace = document.getElementById('enlace_'+id);
if(elemento.style.display == "" || elemento.style.display == "block") {
elemento.style.display = "none";
enlace.innerHTML = 'Mostrar contenidos';
}
else {
elemento.style.display = "block";
enlace.innerHTML = 'Ocultar contenidos';
}
}
</script></head><body>
<p style="display: none;" id="contenidos_1">[1] Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Sed mattis enim vitae orci. Phasellus libero. Maecenas
nisl arcu, consequat congue, commodo nec, commodo ultricies, turpis.
Quisque sapien nunc, posuere vitae, rutrum et, luctus at, pede.
Pellentesque massa ante, ornare id, aliquam vitae, ultrices porttitor,
pede. Nullam sit amet nisl elementum elit convallis malesuada.
Phasellus magna sem, semper quis, faucibus ut, rhoncus non, mi. Duis
pellentesque, felis eu adipiscing ullamcorper, odio urna consequat
arcu, at posuere ante quam non dolor. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Duis scelerisque.</p>
<a id="enlace_1" href="#" onclick="muestraOculta('1'); return false;">Mostrar contenidos</a>
<br>
<p style="display: none;" id="contenidos_2">[2] Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Sed mattis enim vitae orci. Phasellus libero. Maecenas
nisl arcu, consequat congue, commodo nec, commodo ultricies, turpis.
Quisque sapien nunc, posuere vitae, rutrum et, luctus at, pede.
Pellentesque massa ante, ornare id, aliquam vitae, ultrices porttitor,
pede. Nullam sit amet nisl elementum elit convallis malesuada.
Phasellus magna sem, semper quis, faucibus ut, rhoncus non, mi. Duis
pellentesque, felis eu adipiscing ullamcorper, odio urna consequat
arcu, at posuere ante quam non dolor. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Duis scelerisque.</p>
<a id="enlace_2" href="#" onclick="muestraOculta('2'); return false;">Mostrar contenidos</a>
<br>
<p style="display: none;" id="contenidos_3">[3] Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Sed mattis enim vitae orci. Phasellus libero. Maecenas
nisl arcu, consequat congue, commodo nec, commodo ultricies, turpis.
Quisque sapien nunc, posuere vitae, rutrum et, luctus at, pede.
Pellentesque massa ante, ornare id, aliquam vitae, ultrices porttitor,
pede. Nullam sit amet nisl elementum elit convallis malesuada.
Phasellus magna sem, semper quis, faucibus ut, rhoncus non, mi. Duis
pellentesque, felis eu adipiscing ullamcorper, odio urna consequat
arcu, at posuere ante quam non dolor. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Duis scelerisque.</p>
<a id="enlace_3" href="#" onclick="muestraOculta('3'); return false;">Mostrar contenidos</a>
</body></html>