切换块的显示

时间:2014-05-25 09:00:11

标签: javascript jquery

我有一张桌子......每个< TR>有一个div为class = opt_NS1的div,对于每个tr,我有一个class = d4_0I_oL_vJ的链接,其中用户点击并且THAT< TR> with class = opt_NS1显示...

这是表格的一个例子

<tr><a class="d4_0I_oL_vJ"></a><div class="opt_NS1"></div></tr>
<tr><a class="d4_0I_oL_vJ"></a><div class="opt_NS1"></div></tr>
<tr><a class="d4_0I_oL_vJ"></a><div class="opt_NS1"></div></tr>
<tr><a class="d4_0I_oL_vJ"></a><div class="opt_NS1"></div></tr>
<tr><a class="d4_0I_oL_vJ"></a><div class="opt_NS1"></div></tr>
<tr><a class="d4_0I_oL_vJ"></a><div class="opt_NS1"></div></tr>

现在我为“class =”opt_NS1“”编写了此代码,以便点击...

jQuery('.d4_0I_oL_vJ').on('click', function (evt) {
    var $button = jQuery(this);
    var $tr = $button.parents('tr');
    var $div = $tr.find('.opt_NS1');
    $div.toggle();
});

但我遇到的问题是,当我点击一个链接时,div正常显示,但是如果我点击另一个链接的另一个链接,那个tr的新div也会显示,但是旧的那个已经打开了STILL REMAINS打开了...如果单击tr的链接,我怎么能这样做呢“其他”class = opt_NS1“divs被隐藏...

请有人帮我这个。谢谢

1 个答案:

答案 0 :(得分:1)

尝试

jQuery('.d4_0I_oL_vJ').on('click', function (evt) {
    var $button = jQuery(this);
    var $tr = $button.closest('tr');//better change here to closest
    var $div = $tr.find('.opt_NS1');//current div
    jQuery('.opt_NS1').not($div).hide(); //hide all other div's not the current one
    $div.toggle();
});

.not()

.closest()