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

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

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

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

Q&A

解決済

2回答

2807閲覧

jQuery ボタン画像の切り替え

may88seiji

総合スコア79

jQuery

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

0グッド

0クリップ

投稿2016/09/09 06:26

###前提
以下のjqueryのコードを書きました。
「編集」ボタンを押すと「保存 キャンセル」のボタンが表示される。
「保存 キャンセル」ボタンを押すと「編集」ボタンが表示される。

###実現したいこと
現在のコードだと、一つ目のボタンを押すと他の全てのボタンが切り替わってしまいます。
一つ目を押したら一つ目のボタンだけ切り替わるようにしたいです。
どうぞよろしくお願いします。

###該当のソースコード

javascript

1$(function(){ 2 $(".edit_on").click(function(){ 3 $(this).css({display:"none"}); 4 $('.edit_off').css({display:"block"}); 5 }); 6 7 $('.edit_off').click(function(){ 8 $(".edit_off").css({display:"none"}); 9 $('.edit_on').css({display:"block"}); 10 }); 11});

html

1 <table> 2 <tbody class="table_right"> 3 <tr> 4 <th scope="row">氏名</th> 5 <td input type="text" name="Name" value="田中 太郎" >田中 太郎<a href="#"> 6 <img src="/images/mypage/btn_edit.png" alt="編集" class="edit edit_on"> 7 <img src="/images/mypage/btn_save.png" alt="保存" class="save edit_off"> 8 <img src="/images/mypage/btn_cancel.png" alt="キャンセル" class="cancel edit_off"></a></td> 9 </tr> 10 <tr> 11 <th scope="row">フリガナ</th> 12 <td input type="text" name="Name" value="タナカ タロウ">タナカ タロウ<a href=""><img src="/images/mypage/btn_edit.png" alt="編集" class="edit edit_on"> 13 <img src="/images/mypage/btn_save.png" alt="保存" class="save edit_off"> 14 <img src="/images/mypage/btn_cancel.png" alt="キャンセル" class="cancel edit_off"></a></td> 15 </tr> 16 <tr> 17 <th scope="row">メールアドレス</th> 18 <td input type="text" name="email" value="tanaka@camp.spoxit.jp">tanaka@camp.spoxit.jp<a href=""><img src="/images/mypage/btn_edit.png" alt="編集" class="edit edit_on"> 19 <img src="/images/mypage/btn_save.png" alt="保存" class="save edit_off"> 20 <img src="/images/mypage/btn_cancel.png" alt="キャンセル" class="cancel edit_off"></a></td> 21 </tr> 22 </tbody> 23 </table>

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

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

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

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

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

guest

回答2

0

ベストアンサー

aタグでボタンを挟まなくてはいけないのでしょうか?
押すとリンクに飛んでしまうので設定が戻っちゃう気がしますが・・・
とりあえずこんな感じで

javascript

1$(function(){ 2 $('.edit_off').each(function(){ 3 $(this).css({display:"none"}); 4 }); 5 $(".edit_on").click(function(){ 6 $(this).css({display:"none"}); 7 $(this).siblings('.edit_off').css({display:"inline"}); 8 }); 9 10 $('.edit_off').click(function(){ 11 $(this).css({display:"none"}); 12 $(this).siblings('.edit_off').css({display:"none"}); 13 $(this).siblings('.edit_on').css({display:"inline"}); 14 }); 15}); 16

HTML

1<table> 2<tbody class="table_right"> 3<tr> 4<th scope="row">氏名</th> 5<td input type="text" name="Name" value="田中 太郎" >田中 太郎 6<img src="btn_edit.png" alt="編集" class="edit edit_on"> 7<img src="btn_save.png" alt="保存" class="save edit_off"> 8<img src="btn_cancel.png" alt="キャンセル" class="cancel edit_off"></td> 9</tr> 10<tr> 11<th scope="row">フリガナ</th> 12<td input type="text" name="Name" value="タナカ タロウ">タナカ タロウ 13<img src="btn_edit.png" alt="編集" class="edit edit_on"> 14<img src="btn_save.png" alt="保存" class="save edit_off"> 15<img src="btn_cancel.png" alt="キャンセル" class="cancel edit_off"></td> 16</tr> 17<tr> 18<th scope="row">メールアドレス</th> 19<td input type="text" name="email" value="tanaka@camp.spoxit.jp">tanaka@camp.spoxit.jp 20<img src="btn_edit.png" alt="編集" class="edit edit_on"> 21<img src="btn_save.png" alt="保存" class="save edit_off"> 22<img src="btn_cancel.png" alt="キャンセル" class="cancel edit_off"></td> 23</tr> 24</tbody> 25</table>

投稿2016/09/09 06:42

yambejp

総合スコア114814

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

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

may88seiji

2016/09/09 07:13

each siblingsの使い方、大変参考になりました。 ありがとうございます!
guest

0

HTML

1 <td input type="text" name="Name" value="田中 太郎" >

HTML

1 <td><input type="text" name="Name" value="田中 太郎" >

あとa要素で括る必要が無いと思います。

HTML

1<a href="#">

回答:

CSS

1.edit_off, 2.do_edit .edit_on { display: none; } 3.edit_on, 4.do_edit .edit_off { display: block; } 5

JavaScript

1$(function(){ 2 $(".edit_on").click(function(){ 3 $(this).closest( 'td' ).addClass( 'do_edit' ); 4 }); 5 6 $('.edit_off').click(function(){ 7 $(this).closest( 'td' ).removeClass( 'do_edit' ); 8 }); 9});

投稿2016/09/09 06:43

kei344

総合スコア69407

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

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

may88seiji

2016/09/09 07:15

closest の使い方勉強になりました。 addClass removeClassでのやり方、ありがとうございます^ ^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問