質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1323閲覧

アコーディオンパネルについて…

amaotosarasa

総合スコア14

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/05/26 10:03

編集2017/05/26 10:23

現在jQueryについて勉強しています。
アコーディオンパネルのコードを本で見たのですが、いまいちよくわかりません。

html,jQuery

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <title>アコーディオン</title> 7 <link rel="stylesheet" href="style.css"> 8 <script type="text/javascript" src="../js/jquery-3.2.1.min.js"></script> 9 <script> 10 $(function(){ 11 $("dd:not(:first)").css("display","none"); 12 $("dl dt").click(function(){ 13 if($("+dd",this).css("display")=="none"){ 14 $("dd").slideUp("slow"); 15 $("+dd",this).slideDown("slow"); 16 } 17 }); 18 }); 19 </script> 20</head> 21<body> 22 <dl> 23 <dt>step.1</dt> 24 <dd>テキスト1</dd> 25 <dt>step.2</dt> 26 <dd>テキスト2</dd> 27 <dt>step.3</dt> 28 <dd>テキスト3</dd> 29 30 </dl> 31</body> 32</html> 33

css

1@carset "utf-8"; 2 3dl{ 4 width: 500px; 5} 6 7dt{ 8 line-height: 35px; 9 font-size: 16px; 10 font-weight: bold; 11 background-color: #ddf; 12} 13dd{ 14 height: 300px; 15 margin: 0; 16 padding: 0; 17 background-color: #ccc; 18}

ifの文からの解説と+dd,thisについて、意味が分かる方がいれば回答をお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/05/26 10:07

質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。また、スクリプトは省略せず書いてください。提示されているコードだけではエラーで動かないはずです。また、HTMLも提示ください。
amaotosarasa

2017/05/26 10:13

指摘ありがとうございます。追記致しました
kei344

2017/05/26 10:21

CSSも別のコードブロックに入れて置いてください。
guest

回答1

0

ベストアンサー

+は隣接セレクタで、this はコンテキストを渡しています。提示のコードの場合 this はクリックした dt なので、$("+dd",this) は「クリックしたdtの隣(次)にあるdd」を取得しています。

【隣接セレクタ (E + F)|セレクタ|CSS HappyLife ZERO】
http://zero.css-happylife.com/selectors/adjacent_sibling_combinators.shtml

【jQuery(expression, context) - jQuery 日本語リファレンス】
http://semooh.jp/jquery/api/core/jQuery/expression%2C+context/

context

Element,jQuery 検索対象。DOM ElementやDocument,jQueryオブジェクトなど

投稿2017/05/26 10:25

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amaotosarasa

2017/05/26 10:32

回答ありがとうございます!
kei344

2017/05/26 11:57

まだ質問が「受付中」になっていますが、どの辺りがわかりにくいですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問