Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/08/2014, 11:12
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Ocultar article con JavaScript

Noto algunos errores. Intentas asignar los valores 'inline' y 'none' como si se trataran de variables cuando deberían de ser cadenas. Por otro lado, la propiedad elements solo es aplicable en formularios, no en secciones u otros elementos. También debes de tomar en cuenta que el método getElementsByName devuelve una lista de nodos, no devuelve a un solo elemento, por más que solo exista uno con el nombre buscado. En este caso, necesitas especificar el número de elemento a tomar y siendo la sección el único elemento con el nombre 'content' para este ejemplo, debes de añadir un [0] al final de la línea en la que lo tomas, con lo cual especificas que se trata del primer elemento encontrado y que en este caso, también es el único.

Te propongo hacerlo así:

Código Javascript:
Ver original
  1. function visibilidad(name){
  2.     var seccion = document.getElementsByName("content")[0],
  3.         articulos = seccion.getElementsByTagName("article"),
  4.         total = articulos.length;
  5.  
  6.     for (var i = 0; i < total; i++){
  7.         if (articulos[i].getAttribute("name") == name){
  8.             articulos[i].style.opacity = 1;
  9.             articulos[i].style.height = "5em";
  10.         }
  11.         else{
  12.             articulos[i].style.opacity = 0;
  13.             articulos[i].style.height = 0;
  14.         }
  15.     }
  16. }

De este modo, tomo a la sección, luego de tomar a la sección, busco todos los artículos existentes en ella, luego, calculo el total de artículos existentes y los itero con un bucle, en el cual evaluaré el nombre de cada uno de ellos. Si alguno posee el mismo nombre del que se especificó en la búsqueda, se lo muestra, caso contrario, se lo oculta. Nuevamente uso las propiedades opacity y height para darle un efecto visual agradable, pero puedes seguir trabajando con la propiedad display.

Demo

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand