2016-09-21 15 views
0

私はセマンティックUiアコーディオンを使用しており、ユーザーはすべての要素でアコーディオンを印刷できるようにしたいと考えています。 (FAQアコーディオンのようなものです)
すべてのアコーディオン要素を開く方法や、最後の要素のインデックスを取得する方法はありますか?セマンティックUiアコーディオン要素の数を取得

$('.print-btn').on('click', function(){ 
    $('.ui.accordion').accordion('open', 0);; 
    setTimeout(function() { //wait a second until the accordion is opened 
     print(); 
    }, 1000); 
}); 

これは最初の要素を開き、それを印刷します:
はここに私のjavascriptのコードです。だから私は実際にはすべての要素を開くためにループが必要であり、そのためには要素の数が必要です。
データはデータベースを通じて変更できるため、あらかじめ要素の数はわかりません。

+0

あなたは「CSSの印刷メディアクエリー」(http://www.w3schools.com/css/css3_mediaquに見てみたいことがありますeries.asp)。それは印刷のためだけにCSSを持つことができます。その特定のCSSでは、すべてのアコーディオンを常に開くことができます。これを行うにはjavascriptは必要ありません。 –

+0

私はそれについて考えましたが、意味論的なアコーデオンでは予想以上に簡単ではありません。私はそれがjavascriptで完了するのが「より良い」と思う。 –

+0

間違いなく「より良い」とは言えませんが、より簡単かもしれません。 –

答えて

1

あなたは、特定のクラスにすべてのあなたの質問項目をマークし、指定されたクラスセレクタ(私はここではjQueryのを使用)で、すべてのアイテムを取得することができます。それから、各項目を通過する些細だその後

var items = $('.faq-item.ui.accordion'); 

配列for-loopitemsオープンそれら:

for (int i=0; i<items.length; i++) { 
    items.accordion('open', i) 
}); 
+0

これは完璧に機能しました。期待以上に簡単...ありがとう! –

関連する問題