2013-02-14 136 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