Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何显示一个div并隐藏所有其他div_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何显示一个div并隐藏所有其他div

Javascript 如何显示一个div并隐藏所有其他div,javascript,jquery,html,Javascript,Jquery,Html,我想在每次单击按钮时显示一个div,还想隐藏其他所有div,我可以如何操作 HTML ​ 首先隐藏所有其他div,然后显示您想要显示的div $​('#w').live('click', function(){ $('div').hide(); $('#a').show(); }); 首先隐藏所有其他div,然后显示您想要显示的div $​('#w').live('click', function(){ $('div').hide(); $('#a').sho

我想在每次单击按钮时显示一个div,还想隐藏其他所有div,我可以如何操作

HTML


首先隐藏所有其他div,然后显示您想要显示的div

$​('#w').live('click', function(){
    $('div').hide();
    $('#a').show();
});

首先隐藏所有其他div,然后显示您想要显示的div

$​('#w').live('click', function(){
    $('div').hide();
    $('#a').show();
});
live已弃用,请在上使用

jQuery.com中的示例:

function notify() { alert("clicked"); }
$("button").on("click", notify);
live已弃用,请在上使用

jQuery.com中的示例:

function notify() { alert("clicked"); }
$("button").on("click", notify);

在JSFIDLE中,您使用的是jQuery 1.7.2。如果您在真正的应用程序中使用此版本,则不应使用$.live,而应使用$.on-不推荐使用前者,而应使用后者

解决问题的最简单、最干净的方法是将按钮和div包装在容器中,并使用$.index将按钮与div关联:

<div class="showThese">
    <div id="a" style="display:none">1</div>
    <div id="b" style="display:none">2</div>
    <div id="c" style="display:none">3</div>
    <div id="d" style="display:none" >4</div>
</div>

<div class="buttons">
    <input type="button" value="1" id="w">
    <input type="button" value="2" id="x">
    <input type="button" value="3" id="y">
    <input type="button" value="4" id="z">
</div>
这是一个演示


上述方法不必使用ID和其他属性,但是如果需要容器中的其他元素,则需要小心,因为如果这样做,$.index将开始失败。

在JSFIDLE中,您使用的是jQuery 1.7.2。如果您在真正的应用程序中使用此版本,则不应使用$.live,而应使用$.on-不推荐使用前者,而应使用后者

解决问题的最简单、最干净的方法是将按钮和div包装在容器中,并使用$.index将按钮与div关联:

<div class="showThese">
    <div id="a" style="display:none">1</div>
    <div id="b" style="display:none">2</div>
    <div id="c" style="display:none">3</div>
    <div id="d" style="display:none" >4</div>
</div>

<div class="buttons">
    <input type="button" value="1" id="w">
    <input type="button" value="2" id="x">
    <input type="button" value="3" id="y">
    <input type="button" value="4" id="z">
</div>
这是一个演示


上述方法不必使用ID和其他属性,但是如果需要容器中的其他元素,则需要小心,因为如果这样做,$.index将开始失败。

如果理解正确,则应在显示特定div之前,仅为div设置display:none

    $('#w').live('click', function(){
        $('div').css('display','none');
        $('#a').css('display','block');

    });

    $('#x').live('click', function(){
         $('div').css('display','none');
        $('#b').css('display','block');
    });

    $('#y').live('click', function(){
         $('div').css('display','none');
        $('#c').css('display','block');
    });

    $('#z').live('click', function(){
         $('div').css('display','none');
        $('#d').css('display','block');
    });

​

如果您理解正确,在显示特定div之前,应该只为div设置display:none

    $('#w').live('click', function(){
        $('div').css('display','none');
        $('#a').css('display','block');

    });

    $('#x').live('click', function(){
         $('div').css('display','none');
        $('#b').css('display','block');
    });

    $('#y').live('click', function(){
         $('div').css('display','none');
        $('#c').css('display','block');
    });

    $('#z').live('click', function(){
         $('div').css('display','none');
        $('#d').css('display','block');
    });

​
试试这个jQuery-

试试这个jQuery-


向所有要显示或隐藏的div添加一个类 例如:


要查看实际操作中的答案:

向所有要显示或隐藏的div添加一个类 例如:


要查看实际操作中的答案:

检查演示是否是您想要实现的目标。

检查演示是否是您想要实现的目标。

您知道,所有属性都必须有引号。与id=a相对应的id=a。id必须以字母开头我对JQuery不太确定,但我使用的是dojo,在JQuery中必须有类似的方法来实现这一点。当我显示一个div时,我将其id存储在全局变量中。现在我有两个类用于隐藏和显示div。当用户按下按钮时,使用全局变量中的值,我获得当前显示的div的引用,并删除显示类和添加隐藏类。为了显示div,我删除了hide类并添加了display类。与id=a相对应的id=a。id必须以字母开头我对JQuery不太确定,但我使用的是dojo,在JQuery中必须有类似的方法来实现这一点。当我显示一个div时,我将其id存储在全局变量中。现在我有两个类用于隐藏和显示div。当用户按下按钮时,使用全局变量中的值,我获得当前显示的div的引用,并删除显示类和添加隐藏类。为了显示div,我删除了hide类并添加了display类。如果页面上有任何其他div,它们将被不必要地隐藏,因为解决方案引用我的应答如果页面上有任何其他div,它们将被不必要地隐藏,因为解决方案引用我的应答Live和您的on变量不一样。@请参阅我的更新,它可以被替换而无需任何修改。嗯,没有什么真正的改变。检查docs.live中的委托事件方法和您的on变体不一样。@查看我的更新,它可以在不进行任何修改的情况下被替换HM,实际上没有任何更改。检查文档中的委托事件方法。如果页面上有任何其他div,它们将被不必要地隐藏,有关解决方案,请参阅我的answer@Playmaker,你是对的。我只是给出给定代码的解决方案。它可以很容易地扩展到特定的div。您的解决方案必须消除该问题。如果页面上有任何其他div,它们将被不必要地隐藏,因为解决方案请参阅我的answer@Playmaker,你是对的。我只是给出给定代码的解决方案。它可以很容易地扩展到特定的div。你的解决方案必须消除这个问题。我喜欢在这里使用兄弟姐妹。谢谢你的解决方案我喜欢在这里使用兄弟姐妹。谢谢你的解决方案
$​('#w').click(function(){
$('#a').show()
$('#b,#c,#d').hide()
});

$('#x').click(function(){
$('#b').show();
$('#a,#c,#d').hide()
});

$('#y').click(function(){
$('#c').show();
$('#b,#a,#d').hide()
});

$('#z').click(function(){
$('#d').show();
$('#b,#c,#d').hide()
});
<div id=a class="hide" style="display:none">1</diV>
 $('.hide').css('display','none'); /* Replace .hide with whatever class name u have chosen*/