2013-02-14 140 views
0

我有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"显示,但不是黑盒 如果我改变

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

为:

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

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

回答

0

如果您正在使用上述HTML或类似的东西,我会使用对父母的引用来做到这一点。

代替:

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

使用

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

这是假设你有一个以上的MainForm的股利和他们都与黑盒类一个孩子。

here is an example.

+0

我爱你!!!!! (不是真的,但你明白了!),这是我所需要的! – 2013-02-14 20:57:33

+0

我很高兴它可以提供帮助。我发现自己经常在用正确的jQuery对象进行选择。我之前已经打过这场精确的战斗,这就是我所知道的。 – 2013-02-14 21:01:45

0

而不是你做了什么只是display:none;样式添加到您的div,然后告诉他们,只要你want.So你可以如下做到这一点:

<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而不是循环。

+0

嗨,谢谢转换的想法!我是JavaScript新手,但不是编程,所以我没有想到这个选项。但我的问题是,whiting“$(this).closest(”div .BlackBox“)。show();”是不是选择我的黑匣子... – 2013-02-14 19:39:58

+0

将您的Div改为div的标签.. – 2013-02-14 19:45:56

+0

@DanielBerthiaume检查我的更新 – 2013-02-14 19:53:31