让所有其他Div消失javascript

时间:2014-03-23 19:14:05

标签: javascript html show-hide

我有一个脚本,让我在onclick上显示所有具有特定ID的Div

这是选择器

<a onclick="filterGal('simpleCart_shelfItem item Sonnenbrillen')" href="javascript:void(0);">Sonnenbrillen</a>

这是我的剧本

function filterGal(foo) {
                    var toHide = document.getElementsByClassName(foo);
                    for (i = 0; i < toHide.length; i++) {
                            toHide[i].style.display = 'block';
                    }
            }

所以现在我的问题是如何只显示具有classname的特定div并且不显示其他div与其他类名?

3 个答案:

答案 0 :(得分:0)

试试这个:

function filterGal(foo) {
    var toHide = document.getElementsByTagName('div');
    for (i = 0; i < toHide.length; i++) {
         toHide[i].style.display = 'none';
    }
    var toShow = document.getElementsByClassName(foo);
    for (i = 0; i < toShow.length; i++) {
         toShow[i].style.display = 'block';
    }
}

可以通过跳过与您的类匹配的第一个循环div来改进。

答案 1 :(得分:0)

我只是告诉你添加jquery标签,所以你只需要这样做:

function filterGal(foo) {
    $( "div:not("+foo+")" ).hide();
}

例如:http://jsfiddle.net/ACjeZ/1

答案 2 :(得分:0)

这就是我想要的:

span