●鈴木 翔
血液型 |A
趣味 |料理
友達 |3人
名前 |関係
鈴木 啓 |兄
渡辺 史郎|同級生
中野 剣 |同級生
上記のようなHTMLのtableがあります。
一番上の●はボタンです。
このボタンを押すと下記のように
5行目以降を非表示にしたいです。
もう一度押すと上記に戻したいのですが、
出来ますでしょうか?
●鈴木 翔
血液型 |A
趣味 |料理
友達 |3人
因みに・・・
tableは他にもあります。
佐藤という人もいるので、
javascriptでtableのidを
受け取りそれの5行目以降を
非表示にするみたいな方法を望んでいます。
No.2ベストアンサー
- 回答日時:
こんにちは。
jQueryを併用するととても少ない記述で実装でき、こんな感じになります。
==== JavaScript
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">google.load('jquery','1');</script>
<script type="text/javascript">
$().ready ( function() {
// tableタグにあるbuttonのクリックイベント
$('table button').click ( function() {
// クリックされたボタンの親要素であるtableの中のtbodyタグをtoggle()する
// toggle()は表示されていたら非表示、非表示の場合は表示する
$(this).parents('table').find('tbody').toggle();
});
});
</script>
==== HTML
<table>
<thead>
<tr><th><button type="button">●</button></th><td>鈴木 翔</td></tr>
<tr><th>血液型</th><td>A</td></tr>
<tr><th>趣味</th><td>料理</td></tr>
<tr><th>友達</th><td>3人</td></tr>
</thead>
<tbody>
<tr><th>名前</th><th>関係</th></tr>
<tr><td>鈴木 啓</td><td>兄</td></tr>
<tr><td>渡辺 史郎</td><td>同級生</td></tr>
<tr><td>中野 剣</td><td>同級生</td></tr>
</tbody>
</table>
<table>
<thead>
<tr><th><button type="button">●</button></th><td>鈴木 翔</td></tr>
<tr><th>血液型</th><td>A</td></tr>
<tr><th>趣味</th><td>料理</td></tr>
<tr><th>友達</th><td>3人</td></tr>
</thead>
<tbody>
<tr><th>名前</th><th>関係</th></tr>
<tr><td>鈴木 啓</td><td>兄</td></tr>
<tr><td>渡辺 史郎</td><td>同級生</td></tr>
<tr><td>中野 剣</td><td>同級生</td></tr>
</tbody>
</table>
この回答への補足
記述方法が違ってたのか解りませんが、
直りました。
jquery使わない方法もありがとうございました。
こちらを使用させていただきます。
No.5
- 回答日時:
No.4です。
何度もすみません。
先ほどのHTMLはそのままです、は間違いで、buttonにvalueにて値を与えてください。
0から始まって上から順番に付けるイメージです。
<button type="button" value="0">●</button>
・
・
<button type="button" value="4">●</button>
No.4
- 回答日時:
こんにちは。
こちらではエラーになっていないので何でだかはわかりませんが、jQueryを併用しないのであれば以下のような感じになると思います。
(HTMLの構成は先程と一緒です。<tbody></tbody>を切り替えたいエリアとします)
==== JavaScript
window.onload = function() {
var btn = document.getElementsByTagName('button');
for ( var i = 0; i < btn.length; i ++ ) {
btn[i].onclick = function() {
var tbl = document.getElementsByTagName('tbody')[this.value];
tbl.style.display =
tbl.style.display == 'none' ? 'block' : 'none';
};
}
};
No.3
- 回答日時:
#1です。
手抜きですという前提で書き込みはしましたが、
逆に、同じJavaScriptを1000回実行するどころか
友達をそのページに1000人も表示するというのが
逆にナンセンスかもしれません。
ある程度の1ページの最大人数を設定してページを
表示するのが、今の理想かもしれません。
#10件とか20件ですと、極度ですので、100件あたりが良いかと
JavaScriptの前に、HTML表示が重くなります。
No.1
- 回答日時:
こんにちわ。
少々手抜きになりますが・・・
<html><head>
<script type="text/javascript"><!--
function Display(id,mode){
if(document.all || document.getElementById){
if(document.all){
obj = document.all(id).style;
}else if(document.getElementById){
obj = document.getElementById(id).style;
}
if(mode == "view") {
obj.display = "block";
} else if(mode == "none") {
obj.display = "none";
} else if(obj.display == "block"){
obj.display = "none";
} else if(obj.display == "none"){
obj.display = "block";
}
}
}
//--></script>
</head><body>
<form>
<input type="button" onclick="Display('test1','block');Display('test2','block');Display('test3','block');">ほげ
</form>
ほげたいとる
<table>
<tr><td>ほげほげ</td></tr>
<tr><td style="display: none;" id="test1">ほげほげ</td></tr>
<tr><td style="display: none;" id="test2">ほげほげ</td></tr>
<tr><td style="display: none;" id="test3">ほげほげ</td></tr>
</table>
<form>
<input type="button" onclick="Display('test4','block');Display('test5','block');Display('test6','block');">ほげ
</form>
ほげたいとる
<table>
<tr><td>ほげほげ</td></tr>
<tr><td style="display: none;" id="test4">ほげほげ</td></tr>
<tr><td style="display: none;" id="test5">ほげほげ</td></tr>
<tr><td style="display: none;" id="test6">ほげほげ</td></tr>
</table>
</body></html>
回答者様のコードですと、
友達が1000人いた場合1000回も
Display()を実行してしまうので、
遅くなりませんかね(汗)
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- 野球 鈴木啓示の鬼畜老害ポンコツ野郎は世界一の名将・我らが近鉄仰木彬大監督がイチから作り上げて優勝争いを出 2 2022/07/22 11:29
- MySQL 【MySQL】本当に困っているので、助けてください。よろしくお願いします。 3 2023/06/03 14:24
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP MySql PHP 2つのテーブルをJOINで結合 user_idで抽出 1 2023/01/03 14:04
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルの行を折りたたみたい...
-
テーブルのヘッダとボディの幅...
-
テーブルの任意の列を非表示に...
-
この出品にある送料表の作り方
-
テーブルの行の高さを指定する...
-
テーブルを2つ横に並べる
-
tableの要素(tr、td)に一...
-
htmlで作成するテーブルの横線...
-
EXCELの表にTABLEタグをテキス...
-
画像と画像の間の空白
-
テキストエリアについて
-
tableタグ内の文章を上から揃え...
-
スクロール付きのテーブルで、...
-
<table>を複数使用するレイアウ...
-
ASPでmdbファイルからデータの...
-
幅の違うテーブルを作りたい
-
商品詳細を横並びに表示する方法
-
TABLEのセルの中の文字を行単位...
-
テーブル幅が固定できない
-
テーブルとテーブルの間隔について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TRタグの余白をcssで設定するには
-
tableにul,または,olを入れられ...
-
テーブルの任意の列を非表示に...
-
テーブルのヘッダとボディの幅...
-
cssで、表示されるテキストによ...
-
HTML <td></td>タグ セル内余...
-
文字列が入っているtdを削除せ...
-
テーブルのセルに画像をピッタ...
-
テーブルの行を折りたたみたい...
-
テーブルの行の高さを指定する...
-
テーブルの表示がずれます
-
テーブルタグのセルの幅の一部...
-
中に<table></table>が使えるア...
-
逆L字の表(table)組み
-
ホームページ 表の上の余白を...
-
表の中の列の順番を入れ替える...
-
EXCELからhtmlへの変換で罫線が...
-
tableでcolspanを使うと次行以...
-
表の1列だけをCSSを使って右揃...
-
文字の中央そろえを一括で指定...
おすすめ情報