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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

解決済

3回答

1457閲覧

jQueryでのfindの扱いで"."(ドット)が付くときと付かない時の違いは何でしょうか。

raputorujp

総合スコア19

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

1クリップ

投稿2019/06/26 08:24

ProgateでjQueryを学んでおります。

アコーディオンを実装しておりますが、以下script.jsにてfind('.answer')のときとfind('span')のときがあり、ドットをつけるときとつけない時の違いがわかりません。
勘所だとタグの場合は必要なくanswerがclassではなくIDなら#answerになるのかなと思ってますがいかがでしょうか。
また、上記のとおりだとしても、script2.jsだとfindとaddClassでドットがついたりつかなかったりしていて、こちらは上記とは別の考え方が必要そうですが、どのように理解したらよろしいでしょうか。

HTML

<div class="faq-wrapper"> <div class="container"> <div class="heading"> <h2>FAQ</h2> </div> <div class="faq"> <ul id="faq-list"> <li class="faq-list-item"> <h3 class="question">Progateの公式キャラクターはなんですか?</h3> <span>+</span> <div class="answer"> <p>にんじゃわんこといいます。忍者の格好をしたわんこです。ネコではありません。</p> </div> </li> <li class="faq-list-item"> <h3 class="question">にんじゃわんこはオスですか?それともメスですか?</h3> <span>+</span> <div class="answer"> <p>にんじゃわんこはオスです。</p> </div> </li> <li class="faq-list-item"> <h3 class="question">にんじゃわんこは何歳ですか?</h3> <span>+</span> <div class="answer"> <p>にんじゃわんこは14歳です。</p> </div> </li> </ul> </div> </div> </div>

script.js

//アコーディオン $('.faq-list-item').click(function(){ var $answer = $(this).find('.answer'); if($answer.hasClass('open')){ $answer.removeClass('open'); $answer.slideUp(); $(this).find('span').text('+'); } else{ $answer.addClass('open'); $answer.slideDown(); $(this).find('span').text('-'); } });

script2.js

//アコーディオン $('.lesson').hover( function() { $(this).find('.text-contents').addClass('text-active'); }, function() { $(this).find('.text-contents').removeClass('text-active'); } );

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

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

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

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

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

guest

回答3

0

セレクタのルールを理解してください

javascript

1<style> 2#hoge{color:red} 3.fuga{color:blue} 4div{background-Color:yellow} 5</style> 6 7<script> 8window.addEventListener('DOMContentLoaded', function(e){ 9 console.log(document.querySelectorAll('#hoge').length); 10 console.log(document.querySelectorAll('.fuga').length); 11 console.log(document.querySelectorAll('div').length); 12}); 13</script> 14 15 16<div id="hoge">hoge</div> 17<div class="fuga">fuga</div> 18<div class="fuga">fuga</div> 19<div class="fuga">fuga</div> 20<div class="fuga">fuga</div>

cssでも、通常のjavascriptでも、HTML要素へのアクセスの仕方は
基本部分では統一されています

投稿2019/06/26 08:34

yambejp

総合スコア114784

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

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

raputorujp

2019/06/26 14:12

ありがとうございます!
guest

0

タグの場合は必要なくanswerがclassではなくIDなら#answerになるのかなと思ってますがいかがでしょうか。

あってます。classだから.が付いてます。

script2.jsだとfindとaddClassでドットがついたりつかなかったりしていて、こちらは上記とは別の考え方が必要そうですが、どのように理解したらよろしいでしょうか。

addClass, removeClassは「classを追加・削除する」目的のメソッドなので、いちいち.を付けなくても引数がclassであるのは自明です。

findはclass, id, タグのどれでも指定できるメソッドなので、区別して指定する必要があります。

投稿2019/06/26 08:31

gentaro

総合スコア8949

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

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

raputorujp

2019/06/26 08:34

とてもわかりやすいご回答ありがとうございます!入れ違いでベストアンサーを別の方につけさせて頂いてしまいました(汗 またよろしくおねがいします!
guest

0

ベストアンサー

findに限らず
(.名称) は「クラス」を呼び出している
(名称) は「タグ」を呼び出している

ついでに、
(#名称) は「ID」を呼び出している

CSSの定義の仕方とリンクしていると思ってください。

「呼び出している」というと若干正確ではないので「セレクタとして指定している」と表現するのが正しいかもしれません。

投稿2019/06/26 08:27

編集2019/06/26 08:29
m.ts10806

総合スコア80850

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

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

raputorujp

2019/06/26 08:29

script2.jsにあるaddClass('text-active')は、なぜドットが必要ないのでしょうか。
raputorujp

2019/06/26 08:31

なるほど!ありがとうございます!
m.ts10806

2019/06/26 08:36

解決されたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問