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

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

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

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

jQuery

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

Q&A

解決済

1回答

1381閲覧

同名のクラスを別々に処理したい。

no23h

総合スコア49

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2017/06/28 15:03

編集2017/06/28 15:10

宜しくお願いいたします。
javascriptでちょっとしたread moreの機能を付与しております。
.reをクリックしますと、.conect_hide内のテキストが表示される仕組みです。
この状態では、例えばいずれかの.reをクリックすると全てのread moreエリアが表示されてしまいます。
個別のコンテンツ内で操作したい場合はどうすればいいでしょうか?

<script> $(function(){ $(".conent_hide").hide(); $(".re").click(function(){ x=$(".re").text(); $(".conent_hide").slideToggle( function(){ if(x == "続きを読む"){ $(".re").text("続きを読む").css({color:"red"}); } else{ $(".re").text("閉じる").css({color:"green"}); } }); }); }); </script> <dl> <dt>AAA</dt> <dd> <p>AAAのテキスト<div class="conent_hide">AAAのreadmoreテキスト</div></p> <span class="re">続きを読む</span> </dd> </dl> <dl> <dt>BBB</dt> <dd> <p>BBBのテキスト<div class="conent_hide">BBBのreadmoreテキスト</div></p> <span class="re">続きを読む</span> </dd> </dl>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/06/28 15:05

インデントをつけてください。
guest

回答1

0

ベストアンサー

javascript

1$(function(){ 2 $(".conent_hide").hide(); 3 $(".re").click(function(){ 4 var $this = $(this); // この時点の this はイベントが発生したノードです 5 $(".conent_hide", $this.parent()).slideToggle(function() { 6 if($this.text() == "続きを読む"){ 7 $this.text("閉じる").css({color:"green"}); 8 } else { 9 $this.text("続きを読む").css({color:"red"}); 10 } 11 }); 12 }); 13});

イベントが発生した時点の this はその発火したノードになります。ですのでその this を基準に処理を行えばよいです。

あと if が逆ですね。

投稿2017/06/28 15:36

編集2017/06/28 15:39
mattn

総合スコア5030

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

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

no23h

2017/06/28 18:15

大変勉強になりました。 また指摘までありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問