🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

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

Q&A

解決済

2回答

1446閲覧

aタグの文字色を条件によって変えたい

makosama4493

総合スコア21

JavaScript

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

0グッド

0クリップ

投稿2021/03/08 15:08

$genderの内容によってCHECKの色を変えたいのですが下記のコードでは色がかわりません

<p id='gender'><? php echo $gender; ?></p> <p id='check'><a href='list.php'>CHECK</a></p> <script> var gender = document.getElementById('gender').textContent; var check = document.getElementById('check').textContent; if(gender=='male'){ check.style.color = 'Blue'; }else if (gender=='female'){ check.style.color = 'Red'; } </script>

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

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

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

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

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

guest

回答2

0

2点問題があります。

  • リンクはデフォルトで文字色を持つので、IDがcheckのp要素の文字色を変えても、そのままではリンクの色が表示される。
  • styleプロパティの対象はgetElementByIdで得られるElementオブジェクトなので、変数checkの設定値にtextContentを付けてはいけない。

さらに、次の点も考慮すべきでしょう。

  • 変数genderの値は、HTMLファイルのインデントにより前後に空白文字(改行を含む)が付く可能性を考慮して、trim()で処理すべき。

CSS

1#check a { 2 color: inherit; 3}

JavaScript

1var gender = document.getElementById('gender').textContent.trim(); 2var check = document.getElementById('check'); 3if (gender == 'male') { 4 check.style.color = 'Blue'; 5} else if (gender == 'female') { 6 check.style.color = 'Red'; 7}

投稿2021/03/08 15:59

Daregada

総合スコア11990

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

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

0

ベストアンサー

textContent は単なるテキストなので style プロパティはない。

id='check'に color を設定しても、a要素のデフォルトの color が優先される。

js

1var gender = document.getElementById('gender').textContent; 2var check = document.getElementById('check'); 3if(gender=='male'){ 4 check.style.color = 'Blue'; 5}else if (gender=='female'){ 6 check.firstElementChild.style.color = 'Red'; 7}

あるいは、

js

1var gender = document.getElementById('gender').textContent; 2var check = document.querySelector('#check > a'); 3if(gender=='male'){ 4 check.style.color = 'Blue'; 5}else if (gender=='female'){ 6 check.style.color = 'Red'; 7}

投稿2021/03/08 15:45

編集2021/03/08 15:48
hatena19

総合スコア34073

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

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

makosama4493

2021/03/10 05:14

下段のコードで解決しました。自分の力では思いもつかないコードでした。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問