Есть ли причина, по которой вы не используете previousSibling
или nextSibling
? Ваш код должен работать теоретически, но поскольку он, очевидно, не работает (вы проверили консоль ошибок?), Попробуйте следующее, которое работает с использованием некоторой идеи итератора, а не цикла массива:
// hide the others divs under the same parent
var child = e.parentnode.firstChild;
do
{
if (child != e)
{
child.style.display = 'none';
}
child = child.nextSibling;
}
while (child.nextSibling != null);
Кстати, я рекомендую использовать что-то вроде jQuery. Это делает вещи проще.