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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

4559閲覧

selectプルダウンの背景色および右隣りのセルの背景色を変更するには?

sakura-shi

総合スコア93

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/06/03 07:14

編集2018/06/04 02:10

やりたいこと

selectプルダウンで、いずれかを『済』に変更した場合に
プルダウンのあるセルおよび右隣りのセルの背景色を赤に変更したい
いったんプルダウンを変更しても、『済』以外に戻した場合は、ホワイトにしたい。

ただし、$("[name^=status]")と指定する部分なのですが、必ずstatus[0]の場合だけ、ホワイトではなく別のカラーに戻したいという指定はできるものでしょうか?

プルダウンのあるセルの右隣りのセルの指定方法がわかりません。

HTML

1<table> 2<tr> 3 <td> 4 メインディッシュ 5 </td> 6 <td> 7  工程1:野菜を切る 8 <select name="status1[0]" class="sts1"> 9 <option value="0">未処理</option> 10 <option value="1">済</option> 11  </select> 12 </td> 13 <td> 14 <input type="text" name="comment1[0]"> 15 <td> 16 <td> 17  工程2:材料を炒める 18 <select name="status2[0]" class="sts2"> 19 <option value="0">未処理</option> 20 <option value="1">済</option> 21  </select> 22 </td> 23 <td> 24 <input type="text" name="comment2[0]"> 25 <td> 26 <td> 27 工程3:器に盛りつける 28 <select name="status3[0]" class="sts3"> 29 <option value="0">未処理</option> 30 <option value="1">済</option> 31  </select> 32 </td> 33 <td> 34 <input type="text" name="comment3[0]" class="cmt"> 35 </td> 36</tr> 37<tr> 38 <td> 39  副菜1 40 </td> 41 <td> 42  工程1:野菜を切る 43 <select name="status1[1]" class="sts1"> 44 <option value="0">未処理</option> 45 <option value="1">済</option> 46  </select> 47 </td> 48 <td> 49 <input type="text" name="comment1[1]" class="cmt"> 50 </td> 51 <td> 52  工程2:材料を炒める 53 <select name="status2[1]" class="sts2"> 54 <option value="0">未処理</option> 55 <option value="1">済</option> 56  </select> 57 </td> 58 <td> 59 <input type="text" name="comment2[1]" class="cmt"> 60 </td> 61 <td> 62 工程3:器に盛りつける 63 <select name="status3[1]" class="sts3"> 64 <option value="0">未処理</option> 65 <option value="1">済</option> 66  </select> 67 </td> 68 <td> 69 <input type="text" name="comment3[1]" class="cmt"> 70 </td> 71</tr> 72<tr> 73 <td> 74  副菜2 75 </td> 76 <td> 77  工程1:野菜を切る 78 <select name="status1[2]" class="sts1"> 79 <option value="0">未処理</option> 80 <option value="1">済</option> 81  </select> 82 </td> 83 <td> 84 <input type="text" name="comment1[2]" class="cmt"> 85 </td> 86 <td> 87  工程2:材料を炒める 88 <select name="status2[2]" class="sts2"> 89 <option value="0">未処理</option> 90 <option value="1">済</option> 91  </select> 92 </td> 93 <td> 94 <input type="text" name="comment2[2]" class="cmt"> 95 </td> 96 <td> 97 工程3:器に盛りつける 98 <select name="status3[2]" class="sts3"> 99 <option value="0">未処理</option> 100 <option value="1">済</option> 101  </select> 102 </td> 103 <td> 104 <input type="text" name="comment3[2]" class="cmt"> 105 </td> 106</tr> 107</table> 108<script> 109 110$("[name^=status]").on("change", function () { 111 $(this).parent().css("background", parseInt($(this).val()) === 1 ? "red" : "white"); 112}); 113 114$(function () { 115 $("[name^=status] ").each(function (i, e) { 116 $(this).parent().css("background", parseInt($(e).val()) === 1 ? "red" : "white"); 117 }); 118}); 119 120</script>

## 調べてみたこと

$(this).next("td").css("background", "red");

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

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

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

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

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

guest

回答2

0

js

1$("[name^=status]").on("change", function () { 2 var color = parseInt($(this).val()) === 1 ? "red" : "white"; 3 $(this).parent().css("background", color).next().css("background", color); 4});

一個目のセルはできているので、チェーンメソッドで次のセルにも同じ処理をします。

投稿2018/06/03 23:40

CODEISLE

総合スコア251

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

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

0

ベストアンサー

どんな構造か整理しましょう。
そのselectの親のtdの次のtdなので

js

1$("[name^=status]").on("change", function () { 2 $(this).parent().next().css("background", parseInt($(this).val()) === 1 ? "red" : "white"); 3});

こっちの方がわかりやすいですかね。

js

1$("[name^=status]").on("change", function () { 2 $(this).parent('td').next('td').css("background", parseInt($(this).val()) === 1 ? "red" : "white"); 3}); 4

closestにすると、親のなかで一番近い要素を取得してくれるので、以下でも出来ます。

js

1$("[name^=status]").on("change", function () { 2 $(this).closest('td').next('td').css("background", parseInt($(this).val()) === 1 ? "red" : "white"); 3}); 4

投稿2018/06/03 12:12

kszk311

総合スコア3404

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

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

sakura-shi

2018/06/04 02:08

ありがとうございます $("[name^=status]")と指定する部分なのですが、必ずstatus[0]の場合だけ、ホワイトではなく別のカラーに戻したいという指定はできるものでしょうか?
kszk311

2018/06/04 09:06 編集

「status[0]」というのは、1行目の「status1[0]」「status2[0]」「status3[0]」のことですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問