2017-03-03 77 views
-3

我想顯示/隱藏同名切換div的

<div class="slide"><button>Click Here</button></div> 
<div class="slideChild"></div> 
<div class="slideChild"></div> 
<div class="slideChild"></div> 
<div class="slideChild"></div> 


<div class="some content">ABC</div> 

<div class="slide"><button>Click Here</button></div> 
<div class="slideChild"></div> 
<div class="slideChild"></div> 
<div class="slideChild"></div> 
<div class="slideChild"></div> 

以上多個div的示範文本,我不能改變類strucutre或追加任何類,所以對此的任何想法的問題。

我知道我們可以使用jquery切換按鈕事件觸發時,但它的滑動所有div的,所以我必須使用其他最接近或什麼的。

$("body").on("click","button",function(){ 
     $('.slideChild').toggle(); 
    });  
+0

你能解釋一下更多的問題嗎?你可以用發佈的jQuery代碼隱藏它們,但是你說它不能像你期望的那樣工作?爲什麼 –

+0

當我按下按鈕時,它只會滑動4 slideChild div附近的那個div。 –

回答

0

您可以使用jQuery的toggle()

$(".slideChild").toggle(); 
+0

它會切換兩個div的我只想要最接近的div沒有ABC文本 –

+0

你最近的div是什麼意思?最接近什麼? – Swellar

+0

只有四個Slidechild div最接近該div。 –

0

使用jQuery

$('.slideone button').click(function(){ 
    $(".slideChild").toggle(); 
}); 
0

希望這有助於。

這裏有一個半工作小提琴:https://jsfiddle.net/pqmg1Loq/

如果你點擊該按鈕後ABC他們就會消失。我使用了~選擇器,這意味着「這個之後的所有兄弟選擇器」,類似於「+」,但選擇所有選擇器。

ABC之前的按鈕的問題是,相同的方法會隱藏所有的元素,因爲所有的元素都跟着它。

一個解決辦法是,第一個按鈕按下時,通過創建與它所有的.slideChild元素的數組,然後循環和隱藏要素直到找到.some.content元素。

希望有所幫助。

+0

但父類相同是不是像幻燈片和slideOne它只是幻燈片。 –

+0

他們在你最初的例子中並不一樣,你編輯它:p –

+0

是的,我看到代碼,發現有一個問題,所以我改變了代碼,根據我的功能我必須在我的項目上創建。 –

0

有一種方法是,你必須將所有的slidechild類放入slideone class div,這些slideone class div接近slideone class div。

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script> 
<div class="slideOne"><button>Click Here</button> 
<div class="slideChild">A</div> 
<div class="slideChild">B</div> 
<div class="slideChild">C</div> 
<div class="slideChild">D</div> 

</div> 


<div class="some content">ABC</div> 

<div class="slide"><button>Click Here</button> 
<div class="slideChild" id="a">E</div> 
<div class="slideChild">F</div> 
<div class="slideChild">G</div> 
<div class="slideChild">H</div> 
</div> 

<script> 
$(document).on("click","button",function(){ 
    var parendDIv=$(this).parent('div').attr('class'); 
    $("."+parendDIv+">.slideChild").toggle(); 


    }); 
</script> 
+0

更改班級名稱不可能或與其他開發領域發生衝突。 –

+0

對不起,你沒有得到我。我沒有說要改變類的名稱。你只是看到我的評論的slideone class div的末尾在哪裏,以及看到的JS代碼。我希望你明白我的觀點。:) –

+0

請看更新 –