需要帮助选择

时间:2013-02-14 19:19:49

标签: jquery-selectors show-hide

我的HTML与此类似:

<div class="MainForm">
    <form name="FromName">
     <button name="Button1"></button>
     ...
     ...
    </form>
   <Div class="blackBox" style="visibility:hidden;"></div>
   <Div class="SubFotm" style="visibility:hidden;"></div>
</div>

现在我可以在我的脚本中正确找到按钮单击的触发器,但是我无法仅定位壁橱黑盒以使其可见。

目前我在做:

if (PButtonName=="Fermer") {
$(this).closest("div .ProfileForm").remove(); // Closing Profile Form
}  else if (PButtonName=="plusAdresse") {
alert('In');
      $(this).closest("div .BlackBox").css("visibility","visible");  
}

我可以显示警告"In",但不能显示BlackBox 如果我改变了

$(this).closest("div .BlackBox").css("visibility","visible"); 

for:

 $("div .FormBlackBox").css("visibility","visible"); 

它会显示,但也会显示文档中的所有黑盒子。

2 个答案:

答案 0 :(得分:0)

而不是你做了什么,只需将样式display:none;添加到你的div,然后随时显示它们。所以你可以这样做:

<div class="MainForm">
    <form name="FromName">
     <button name="Button1"></button>
     ...
     ...
    </form>

   <div class="blackBox" style="display:none;"></div>
   <div class="SubFotm" style="display:none;"></div>
</div>

然后在你的脚本中

if (PButtonName=="Fermer") 
{
      $(".MainForm").closest("div .ProfileForm").remove(); // Closing Profile Form
}  
else if (PButtonName=="plusAdresse")
 {
     alert('In');
     $(".MainForm").closest("div .BlackBox").show();  
}

我会建议你在这个地方使用Switch case代替循环。

答案 1 :(得分:0)

如果您使用上述HTML或类似内容,我会使用对父母的引用来做。

而不是:

$(".MainForm").closest("div .BlackBox").css('visibility','visible');

使用

$(this).parents('.MainForm').children('.BlackBox').css('visibility','visible');

假设你有多个MainForm div,他们都有一个带有BlackBox类的孩子。

here is an example.