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

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

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

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

Q&A

解決済

3回答

923閲覧

javasciprtのswitch文で if文でいうAND的な処理をしたい

nguyenseiji

総合スコア156

JavaScript

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

0グッド

0クリップ

投稿2021/06/24 11:20

編集2021/06/25 13:15

お世話になっております。

Switch文を使ってIF文でいうところのAND的な条件を作りたいのですがどのように作成が可能なのでしょうか

IF(1==2 AND 2==2){
}

的な事をSWITCH文を使ってコードを記載したいと思っております...

html

1<div class="Contena_MainImage"> 2<img id="Image01" class="MainImage1" src="../wounise/gamelist/2/img/kellen-riggin-oQQ1bxY8Exc-unsplash.jpg" /> 3 4 <hr/> 5 <div class="Contena_SecondImage"> 6 7 <a href="javascript:void(0);" onclick="LinkClick(0,`png`);"><img class="SecondImage1" src="../wounise/gamelist/2/img/kellen-riggin-oQQ1bxY8Exc-unsplash.jpg"></img> 8 </a><br/> 9 <a href="javascript:void(0);" onclick="LinkClick(1,`mp4`);"><img class="SecondImage1" src="../wounise/gamelist/2/img/toan-nguyen-eVqaLcolf4k-unsplash.jpg"></img> 10 </a><br/> 11 <a href="javascript:void(0);" onclick="LinkClick(2);"><img class="SecondImage1" src="../wounise/gamelist/2/img/erwans-socks-RUdgCetWUDc-unsplash.jpg"></img> 12 </a><br/> 13 <a href="javascript:void(0);" onclick="LinkClick(5);"><img class="SecondImage1" src="../wounise/gamelist/2/img/erwans-socks-RUdgCetWUDc-unsplash.jpg"></img> 14 </a><br/> 15 <a href="javascript:void(0);" onclick="LinkClick(4);"><img class="SecondImage1" src="../wounise/gamelist/2/img/erwans-socks-RUdgCetWUDc-unsplash.jpg"></img> 16 </a><br/> 17 <a href="javascript:void(0);" onclick="LinkClick(5);"><img class="SecondImage1" src="../wounise/gamelist/2/img/graham-mansfield-YXyo7zCqQs4-unsplash.jpg"></img> 18 </a><br/> 19 20 </div> 21</div>

javascript

1 <script type="text/javascript"> 2 function LinkClick(param,intension) { 3 var elem = document.getElementById("Image01"); 4 5 switch (param+","+intension) { 6 case "0,png": 7 elem.outerHTML = '<img id="Image01" class="MainImage1" src="" />'; 8 var elem = document.getElementById("Image01"); 9 elem.src = "../wounise/gamelist/2/img/kellen-riggin-oQQ1bxY8Exc-unsplash.jpg"; 10 break; 11 12 13 case "0,mp4": 14 elem.outerHTML = '<video><source src="" type=""></video>'; 15 var elem = document.getElementById("Image01"); 16 elem.src = "../wounise/gamelist/2/img/BestLife.mp4"; 17 break; 18 19 20 21 22 23 case "1,png": 24 elem.outerHTML = '<img id="Image01" class="MainImage1" src="" />'; 25 var elem = document.getElementById("Image01"); 26 elem.src = "../wounise/gamelist/2/img/toan-nguyen-eVqaLcolf4k-unsplash.jpg"; 27 break; 28 29 case "1,mp4": 30 elem.outerHTML = '<video><source src="" type=""></video>'; 31 var elem = document.getElementById("Image01"); 32 elem.src = "../wounise/gamelist/2/img/BestLife.mp4"; 33 break; 34 35 case 2: 36 elem.src = "../wounise/gamelist/2/img/toan-nguyen-eVqaLcolf4k-unsplash.jpg"; 37 break; 38 case 3: 39 elem.src = "../wounise/gamelist/2/img/tommy-nguyen-QRwwfeDdC-w-unsplash.jpg"; 40 break; 41 case 4: 42 elem.src = "../wounise/gamelist/2/img/erwans-socks-RUdgCetWUDc-unsplash.jpg"; 43 break; 44 default: 45 elem.src = "../wounise/gamelist/2/img/graham-mansfield-YXyo7zCqQs4-unsplash.jpg"; 46 break; 47 } 48 } 49 </script>

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

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

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

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

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

takasima20

2021/06/24 12:05

具体的にどんなことをしたいのかを追記されると、回答しやすいと思います。
nguyenseiji

2021/06/24 12:43

ご連絡ありがとうございます。 自分が実装したい処理としてはaタグを使って押したらonClickからJavascriptの関数を呼び出して その関数の処理は拡張子がpngだったらimgタグをinnerHTMLでmp4だったらvideoタグをinnerHTMLで 現在のタグを変更する処理をSwitchで変更しようと考えております
takasima20

2021/06/24 12:50

具体的なことが決まっている部分だけでもコードにして質問に追記してはいかがでしょうか?
nguyenseiji

2021/06/25 12:36

返信遅れました 質問の方、修正させて頂きましたのでご確認ください 現状できないのがjavascript側でのinnterHTMLがうまく機能しないです... 機能しないので現状はコメントアウトしてますが
guest

回答3

0

IF(1==2 AND 2==2){

は無意味なので、if(x==2 and y==2){相当だとすると、
変数には数値しか入っていないはずとか、文字列だが例えば絶対に","は無いということであれば可能です。

JavaScript

1x = 2; 2y = 2; 3switch(x+","+y){ 4case "2,2": 5 console.log("x=2, y=2"); 6 break; 7case "2,1": 8 console.log("x=2, y=1"); 9 break; 10}

例では数値前提で","を使いましたが、文字列の場合はその文字列に含まれない文字なら何でも良いです。"\a"とかの制御文字を使うと良いかと思います。

投稿2021/06/24 11:34

otn

総合スコア85901

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

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

otn

2021/06/24 11:35

Cだと文字列が使えないので、switch(x*1000+y) みたいなことをします。
nguyenseiji

2021/06/25 12:46

ご返信ありがとうございます! switch文について無事解決しました ですが<img>タグを<video><source><video>タグに変更したいと思い switch上でouterHTMLを使っているのですがうまく機能せず...
guest

0

効率的でもないしあまり推奨されていませんが
switch(true)で条件設定ができます

javascript

1switch(true){ 2case 1==2 && 2==2: 3 console.log(1); 4 break; 5case 1==1 && 2==2: 6 console.log(2); 7 break; 8case 1==1 && 2==2: 9 console.log(3); 10 break; 11}

投稿2021/06/24 11:25

yambejp

総合スコア116724

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

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

nguyenseiji

2021/06/24 11:35

ご返信ありがとうございます。 引数にtrueを必ず入れないといけないのでしょうか またfalseを入れた場合はcaseが逆になるのでしょうか またやはりIF文をこの場合は使った方が良いのでしょうか
guest

0

ベストアンサー

関数のパラメータはひとつでもいけそうなのでこんなかんじで。(リンクの方も要修正)
ただし、実態は分からないので適宜調整してください。

javascript

1 <script type="text/javascript"> 2 function LinkClick(param) { 3 url = ["../wounise/gamelist/2/img/kellen-riggin-oQQ1bxY8Exc-unsplash.jpg", 4 "../wounise/gamelist/2/img/BestLife.mp4", 5 "../wounise/gamelist/2/img/toan-nguyen-eVqaLcolf4k-unsplash.jpg", 6 "../wounise/gamelist/2/img/BestLife.mp4", 7 "../wounise/gamelist/2/img/toan-nguyen-eVqaLcolf4k-unsplash.jpg", 8 "../wounise/gamelist/2/img/tommy-nguyen-QRwwfeDdC-w-unsplash.jpg", 9 "../wounise/gamelist/2/img/erwans-socks-RUdgCetWUDc-unsplash.jpg", 10 "../wounise/gamelist/2/img/graham-mansfield-YXyo7zCqQs4-unsplash.jpg"]; 11 12 let elem = document.getElementById("Image01"); 13 if (param == 1 || param == 3) { 14 elem.innerHTML = '<video><source src="" type=""></video>'; 15 } 16 elem.src = url[param]; 17 </script>

投稿2021/06/25 20:57

編集2021/06/25 21:07
takasima20

総合スコア7464

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

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

nguyenseiji

2021/06/25 23:03

こんな方法があったのですね!!! 面白い.... ありがとうございます。 解決しました
otn

2021/06/26 00:03

元の質問と全く関係なくなってしまいましたね。 元の質問の延長線上であればともかく、全く関係ない質問は、別の質問にしましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問