jQueryを勉強しています。
日本語の挨拶をクリックすると、それを英語で表示します。
クリックした挨拶以外の英語は非表示にします。
処理は実現できましたが、みての通りclick(function(){}の中身が無駄な処理が多いです。
挨拶の数が10個になれば、hide()を9回ずつかかないといけない・・・
多分、thisや配列を使えば、保守性が高いプログラムが作れると思うのですが。
解決策が思い浮かびません。
何かいい方法を教えていただけないでしょうか。
html
1<!DOCTYPE html> 2<html> 3<head> 4 <title>test</title> 5 <link rel="stylesheet" type="text/css" href="./test.css" /> 6 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 7 <script src="test.js"></script> 8</head> 9<body> 10 11<div>英語に変えてみよう</div> 12<div> 13 <div id="button1">おはよう</div> 14 <div id="button2">こんにちは</div> 15 <div id="button3">こんばんは</div> 16</div><br> 17 18 19<div> 20 クリックした和英は: 21 <div id="eng1">good morning</div> 22 <div id="eng2">hello</div> 23 <div id="eng3">good night</div> 24</div> 25 26</body> 27</html>
JavaScript
1$(function(){ 2 3 $('#eng1').hide(); 4 $('#eng2').hide(); 5 $('#eng3').hide(); 6 7 $('#button1').click(function(){ 8 $('#eng1').show(); 9 $('#eng2').hide(); 10 $('#eng3').hide(); 11 }); 12 $('#button2').click(function(){ 13 $('#eng2').show(); 14 $('#eng1').hide(); 15 $('#eng3').hide(); 16 }); 17 $('#button3').click(function(){ 18 $('#eng3').show(); 19 $('#eng1').hide(); 20 $('#eng2').hide(); 21 }); 22 23 24 25})
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/06 12:19