jquery如果单击从旧id显示中删除:块

jquery if click remove from old id display:block

本文关键字:删除 显示 id 如果 单击 jquery      更新时间:2023-09-26

你好,我有以下代码。如果单击了a标记,则应删除display:块,并将其重新设置为display:none。这是html部分。有20个分区(类似这样的分区)

   <!-- Reservieren Sektion 15 --> 
    <div class="section black" id="section16">
         <ul class="nav">
                <ul id="flyout">
                    <li><a class="fly" href="#url"><b>Wir</b><!--[if gte IE 7]><!--></a><!--<![endif]-->
                    <!--[if lte IE 6]><table><tr><td><![endif]-->
                    <li><a href="#section15"><b>Reservieren</b></a></li>
                    <li><a href="#section16"><b><font color="#FFFFFF">Feiern</font></b></a></li>
                    <li><a href="#section17"><b>Arbeiten</b></a></li>
                    <li><a href="#section18"><b>Kaufen</b></a></li>
                    <li><a class="fly" href="#url"><b>Vernetzen</b><!--[if gte IE 7]><!--></a><!--<![endif]-->
                    <!--[if lte IE 6]><table><tr><td><![endif]-->
                        <ul>
                            <li><a href="#section19"><b>Freunde</b></a></li>
                            <li><a href="#section20"><b>Facebook & Qype</b></a></li>
                            <li><a href="#section21"><b>Presse</b></a></li>
                        </ul>
                    <!--[if lte IE 6]></td></tr></table></a><![endif]-->
                    </li>
                    <li><a href="#section22"><b>Impressum</b></a></li>
                </ul>
         </ul>

这是jquery

$(this)是下一个部分的id,但我想为单击的最后一个id设置display none。

  <script type="text/javascript">
        $("a").click(function () {
        var addressValue = $(this).attr("href");
            if($(addressValue).css("display") == "block"){
                $(addressValue+i).css("display","none");    
            }
        $(addressValue).css("display","block");
        });
    </script>;

有人能帮我吗:)

试试这样的东西:

    $("a").click(function() {
        $($(this).attr("href")).toggle();
    });

你做得很好,你刚刚错过了if条件的else

<script type="text/javascript">
        $("a").click(function () {
        var addressValue = $(this).attr("href");
            if($(addressValue).css("display") == "block"){
                $(addressValue+i).css("display","none");    
            }
            else{                                   //You missed this else
               $(addressValue).css("display","block");
            }
        });
    </script>;

尝试

var lastel;
$("a").click(function () {
    if(lastel){
        lastel.hide();
    }
    lastel = $($(this).attr("href"));
    addressValue.toggle()
});

您的javascript代码中存在错误('+i')

$(addressValue+i).css("display","none");

应为:

$(addressValue).css("display","none");

顺便说一下,您的代码正在按预期工作。单击"Feiern"链接时,#section16div显示将传递到"none",然后返回到"block"。

如果您需要隐藏除单击的分区之外的所有分区div,您可以执行以下操作:

$('a').click(function () {
   var addressValue = $(this).attr('href');
   $('.section').css('display', 'none');
   $(addressValue).css('display','block');
});

假设使用".section"选择器没有冲突。