No.3ベストアンサー
- 回答日時:
#1です。
ライブラリとか使わないでやるとこんな感じかな<html>
<head>
<script>
try{
document.addEventListener ('click',function(e){clickfunc(e)},true);
}catch(e){
document.attachEvent('onclick',function(e){clickfunc(e)});
}
function clickfunc(e){
var t = (e.srcElement || e.target);
if(t.nodeName=="INPUT" && t.type=="radio" && t.name=="test"){
switch(t.value){
case "":
display_komoku("k1",true);
display_komoku("k2",true);
break;
case "1111111":
display_komoku("k1",true);
display_komoku("k2",false);
break;
case "2222222":
display_komoku("k1",false);
display_komoku("k2",true);
break;
}
}
}
function display_komoku(val,flg){
var n=document.getElementsByTagName("*");
var r1=new RegExp("(?:^| +)"+val+"(?: +|$)");
var r2=new RegExp("(?:^| +)hide(?: +|$)");
for(var i=0;i<n.length;i++){
if(n[i].className.match(r1)){
if(flg && n[i].className.match(r2)){
n[i].className=n[i].className.replace(r2," ");
}else if(!flg && !n[i].className.match(r2)){
n[i].className+=" hide";
}
}
}
}
</script>
<style>
.hide{display:none;}
</style>
</head>
<body>
<table>
<tr valign="top">
<td>
<input type="radio" name="test" value="" checked> :すべて
<input type="radio" name="test" value="1111111"> :選択1
<input type="radio" name="test" value="2222222"> :選択2<br>
<br>
<div class="title_frame k1">タイトル1</div>
<div class="frame1 k1">文章説明<br>
<ol>
<li>ああああ</li>
</ol>
</div>
<div class="title_frame k2">タイトル2</div>
<div class="frame k2">文章説明<br>
<ol>
<li>いいいい</li>
</ol>
</div>
</td>
</tr>
</table>
</body>
</html>
No.4
- 回答日時:
No.2 は HTML5 環境を想定しているので、もし動かない場合はたぶんコレで
window.onload = function(){ // IE8
function A(a,f){for(var i=0;i<a.length;i++) f(a[i]); }
function Q(s,f){A(document.querySelectorAll(s),f)}
function clicker(form, elem) {
var sec = form.name;
var val = (elem && elem.checked)? elem.value: null;
function switchOpt(e){e.style.display = (val == 'all' || e.className.indexOf(val) >= 0)? 'block': 'none'}
Q('*.opt.' + sec, switchOpt);
}
Q('form.opt input[name=t]', function(elem){elem.onclick = function(){clicker(this.form, this)};});
// Q('form.opt', clicker); // 初期化が必要な場合
};
No.2
- 回答日時:
<script>addEventListener('DOMContentLoaded', function(){
function A(a){return isNaN(a.length)? [a]: Array.prototype.slice.apply(a) }
function Q(s){return A(document.querySelectorAll(s))}
function changer(ev) {
var form = ev.currentTarget;
var val = A(form.elements['t']).reduce(function(p,v){return v.checked? v.value: p},null);
var sec = form.name;
Q('section.opt').filter(function(elem){
return elem.classList.contains(sec);
}).forEach(function(elem){
elem.style.display = (val == 'all')? 'block': elem.classList.contains(val)? 'block': 'none';
});
}
Q('form.opt').forEach(function(elem){elem.addEventListener('change', changer, false)});
}, false)</script>
<form class=opt name=aiueo><!-- 選択肢は form で囲み、適当な name をつける -->
<label><input type=radio name=t value=all>all</label>
<label><input type=radio name=t value=x1>item 1</label>
<label><input type=radio name=t value=x2>item 2</label>
</form>
<section class="opt aiueo x1">ああ</section><!-- form と同じ name を class に加える -->
<section class="opt aiueo x2">いい</section>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- JavaScript 指定時間になったら、WEBサイトの更新を自動で行うには…? 3 2022/04/28 22:14
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- 格安スマホ・SIMフリースマホ 通話中に「話し中音」にする方法を教えてください 2 2023/03/26 23:05
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- Outlook(アウトルック) infoseekメールの受信トレイでメール一覧が表示されない 1 2023/04/05 11:12
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Excel(エクセル) たくさんあるフォームコントロールを効率よく確認するには 1 2022/12/24 12:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
XMLHttpRequestでキャッシュを...
-
functionから抜けられない
-
jQueryを使用して以下のような...
-
処理前の「お待ちください」
-
jslintのエラーについて質問
-
javascript(jQuery)でセル内...
-
javascriptで静的メンバーを実...
-
全角英数字を半角英数字に置換する
-
javascriptのソースでvar resul...
-
同じIDで定義した要素の配列を...
-
Boolean型配列中のTrueの有無を...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
window.openでタイトル名の指定
-
mousewheelイベントについて
-
毎日日付の変わるタイミングを...
-
FireFoxのjavascriptで自動でキ...
-
フォーム入力値の重複チェック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
jslintのエラーについて質問
-
クリックすると上に開くアコー...
-
XMLHttpRequestでキャッシュを...
-
ajax反映後のjqueryが動かない
-
要素名がスペースを含む場合のj...
-
function(e)の意味を教えてくだ...
-
jQueryの :not() .not() が有効...
-
jQueryでzipを解凍読み込みする...
-
getElementByIdを使用したグロ...
-
関数名をテキストから読み込む...
-
jqueryuiのdialog
-
addEventListener()でリスナー...
-
jqueryのグローバル変数とロー...
-
jQuery 同じ処理を関数にまとめ...
-
drawImageの描画順序の指定につ...
-
XMLHttpRequestオブジェクトが...
-
jQueryが読み込めない
おすすめ情報
まだどのようにプログラム組めばいいかわからず、javascriptも組めてない状態です><
今現代段階ではこんな感じです、、、。
※満たしたい条件
「すべて」選択した場合、タイトル1の内容とタイトル2の内容表示
「選択1」を選択した場合、タイトル1の内容のみ表示
「選択2」を選択した場合、タイトル2の内容のみ表示
■css
/* 見出し枠 */
.title_frame{
background :#0000ff;
border :1px solid #0000ff;
padding-left :10px;
font-size:1.16em;
color:#ffffff;
font-weight :bold;
}
.frame{
border:1px solid #0000ff;
padding:10px;font-size: 1em;
font-size:1em;
}
■html
<table><tr valign="top"><td><input type="radio" name="test" value=""> :すべて<input type="radio" name="test" value="1111111"> :選択1<input type="radio" name="test" value="2222222"> :選択2<br><br><div class="title_frame">タイトル1</div><div class="frame">文章説明<br><ol><li>ああああ</li></ol></div><div class="title_frame">タイトル2</div><div class="frame">文章説明<br><ol><li>いいいい</li></ol></div></td></tr></table>
ご回答ありがとうございます。
俺の実力不足のせいか、「ああ」と「いい」だけ表示されたままで、
うまく表示内容が切り替わらず、終わりました、、、。
コードをご丁寧に記載していただいたのにすみません><
2度もご丁寧に説明していただきありがとうございます。
でも残念なことに、動かずにおわってしまいました。
おそらく、俺の実力不足によるものだと思います。
すみません>< ご回答ありがとうございましたm(_ _)m
自分が打ち込んでいる内容に適したもので、とても参考になる回答でした。
ありがとうございます。
どちらも素晴らしいご回答で悩みましたが、
こちらをベストアンサーとさせていただきます。
お忙しい中、ご回答ありがとうございましたm(_ _)m