<table border="0" id="tbl1">
<tr>
<th>A1</td>
<th>B1</td>
<th colspan="2">C1</td>
</tr>
<tr>
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
<td>ddd</td>
</tr>
<tr>
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
<td>ddd</td>
</tr>
</table>
というテーブルで、C1列(要はデータcccとdddの2列)を表示/非表示を行いたいです。
調べてみたところ、colspanが設定されている例がありませんでした。

お判りになる方、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (11件中1~10件)

rowSpan が、からむとてーぶるのてんかいが、ちょうめんどう!


いじでも といてやろうと かんがえたあげく、こんなのが・・・
上級者の方の解法をお願いします。

<button onClick="test('tbl1','list1')">隠す</button>
<table border="1" cellpadding="2" cellspacing="1" id="tbl1">
<tr>
<th rowspan="3">AAA</th>
<th colspan="3" id="list1">BBB</th>
</tr>
<tr>
<th width="120">BBB1</th>
<th width="120">BBB2</th>
<th width="120">BBB3</th>
</tr>
<tr>
<th>BBB11</th>
<th>BBB21</th>
<th>BBB31</th>
</tr>
<tr>
<td>aaa</td>
<td>aaa1</td>
<td>aaa2</td>
<td>aaa3</td>
</tr>
<tr>
<td>bbb</td>
<td>bbb1</td>
<td>bbb2</td>
<td>bbb3</td>
</tr>
<tr>
<td>ccc</td>
<td>ccc1</td>
<td>ccc2</td>
<td>ccc3</td>
</tr>
</table>

<script type="text/javascript">
<!--
function test(tableID, targetID) {

 var tr = document.getElementById(tableID).rows;
 var eTgt = document.getElementById(targetID);
 var x1 = eTgt.offsetLeft;
 var x2 = x1 + eTgt.offsetWidth;
 var d = [];
 var o1, o2;
 var c1 = 0, c2, c3 = 0;
 
 while (o1 = tr[c1++]) {
  c2 = 0;
  while (o2 = o1.cells[c2++])
   if (x1 <= o2.offsetLeft && o2.offsetLeft < x2) d.push(o2);
 }
 while (o1 = d[c3++]) o1.style.display = 'none';
}
//-->
</script>
    • good
    • 1
この回答へのお礼

長々お付き合いくださり、ありがとうございました。
ようやく所望のものが出来上がりました。

お礼日時:2009/05/23 10:40

test('てーぶるのID',1,3);


ではだめってことでしょ?
    • good
    • 0

しつもん。


「れつをけす」がただしいの?
「とくていのせるをかくす」がただしいの?
「ひょうのどこであれ、していしたIDのあるれつすべてをけす」?

にほんごむずかしいからさぁ。ばぶ。

この回答への補足

すみません。スレを変えて画像で表示します。

補足日時:2009/05/21 15:09
    • good
    • 0

おおきいゆめをかたられたら、どうしよう?とおもったけど。

ばぶ。

function hide() {
 var c = 0, o, e;
 while (o = arguments[c++]) (e = document.getElementById(o)) && (e.style.visibility = 'hidden');
}
    • good
    • 0

ぶちっ。



れいせいに×2>じぶん

ikeike77さんへ
ようぼうというか、仕様はほかにないのかなぁ~。ばぶぅ~

ゆめはおおきくかたっておいたほうがよいぞ!ばぶぅ。

この回答への補足

ごめんなさいm(__)m
回答No.3に補足説明したのですが、rowspan、colspan混在したテーブルで、
childNodesとかの知識もおぼろげで。。。
要はテーブル中の特定のIDを付けた列だけを非表示にしたいのです。

補足日時:2009/05/21 13:57
    • good
    • 0

babu_babooさんの方法が一番スマートですね。



tableの場合、childNodesを使わなくても rows, cells という便利なプロパティがあるようです。

Document Object Model/TABLE
http://homepage3.nifty.com/aya_js/dom/dom03.htm

# あとは、Firebugでいろいろコードをたたけば解決できるんじゃないでしょうか。
    • good
    • 0

れんとう、ごめん。


colSpan には、0のときもあるらしいので、そのときは・・・
やっぱり while がみじかいじょ

function test(tableID, sRow, eRow, vFlag) {
 var t = document.getElementById(tableID);
 var tr;
 var cIdx;
 var obj;
 var disp = /*@if(@v<8) 'inline' @else@*/ 'table-cell' /*@end@*/;
 var i = 0, j;
 
 while (tr = t.rows[i++]) {
  cIdx = j = 0;
  while (obj = tr.cells[j++]) {
   sRow <= cIdx && cIdx <= eRow && (obj.style.display = vFlag ? disp: 'none');
   cIdx += obj.colSpan;
  }
 }
}
    • good
    • 0

ていせいします


(@v<8)
でした。
    • good
    • 0

ひょうのせるには、.colSpanってのがあるじょ!


それをかうんとしてはんだんしてる。
style.display は、tabel-cell と inline とがあるじょ
めんどうなので rowSpan は、する~しちゃった
ばぶぅ。

//@cc_on @set @v = @_jscript_version;
function test(tableID, sRow, eRow, vFlag) {
 var t = document.getElementById(tableID);
 var rMax = t.rows.length;
 var cMax;
 var tr;
 var cIdx;
 var obj;
 var disp = /*@if(@v>=8) 'inline' @else@*/ 'table-cell' /*@end@*/;
 
 for (var i = 0; i < rMax; i++) {
  tr = t.rows[i];
  cMax = tr.cells.length;
  cIdx = 0;
  for (var j = 0; j < cMax; j++) {
   obj = tr.cells[j];
   if (sRow <= cIdx && cIdx <= eRow) {
    obj.style.display = vFlag ? disp: 'none';
   }
   cIdx += obj.colSpan;
  }
 }
}
alert('消す');
test('tbl1', 2,3);
alert('見せる');
test('tbl1', 2,3,true);

この回答への補足

申し訳ありません。皆様を混乱させてしまって・・・

やりたい事は、AAAの列だけ常に表示させておき、BBB(つまり3列分)を表示/非表示になる・・といった事です。
下のHTMLで、変数bbbには「3」が入っているのは確認できましたが、後がさっぱり続きません。

どうぞよろしくお願いいたします。



<html>
<head>
<script type="text/javascript">
<!--
function hide(idName) {
var aaa = document.getElementById(idName).childNodes;
var bbb = aaa[0].length;
alert(bbb);
//-->
</script>
</head>

<body>
<button onClick="hide('list1')">隠す</button>
<table border="1" cellpadding="2" cellspacing="1">
<tr>
<th rowspan="3">AAA</th>
<th colspan="3" id="list1">BBB</th>
</tr>
<tr>
<th width="120">BBB1</th>
<th width="120">BBB2</th>
<th width="120">BBB3</th>
</tr>
<tr>
<th>BBB11</th>
<th>BBB21</th>
<th>BBB31</th>
</tr>
<tr>
<td>aaa</td>
<td>aaa1</td>
<td>aaa2</td>
<td>aaa3</td>
</tr>
<tr>
<td>bbb</td>
<td>bbb1</td>
<td>bbb2</td>
<td>bbb3</td>
</tr>
<tr>
<td>ccc</td>
<td>ccc1</td>
<td>ccc2</td>
<td>ccc3</td>
</tr>
</table>
</body>
</html>

補足日時:2009/05/21 11:49
    • good
    • 0

document.getElementById('tbl1').childNodes


を取得して、childNodesを辿っていって3番目&4番目のtd要素ノードにstyle="display:none;"を与える。

という形になると思います。

TAG indexによく似た質問がありました。参考になるかもしれません。

掲示板/JavaScript質問板/javascript 列を非表示にしたい - TAG index Webサイト
http://www.tagindex.com/cgi-lib/q4bbs/patio.cgi? …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの質問。同じ数字なら違う列の数字を返す

エクセルについて質問です。
A列は数字が入力されていて、B列はある数字があります。C列にB列と同じような数字を入力していきます。入力したC列の数字が、B列の中にあれば、入力した行にA列の数字をD列に返すことは出来ますか?下記に例を記載します。

A     B     C       D
0  20110210  2010811      
1  20110214  20101025  
2  20110215  2011111    7
3  20110216  2011322 
4  20110217  2011516  
6  20110221  2011325  
7  2011111    20101220  
8  20050223  2011128  


宜しくお願いします。

Aベストアンサー

C列に入力した数字が何処の行にあるかはMATCH関数で判る。
そしてその行のA列をINDEX関数で取ればよい。
問題は見つからないときの処理で式が長くなるが。
例データ A-D列
xyzu
111343
334
221
D2に
=INDEX($A$1:$A$10,MATCH(C2,$B$1:$B$10,0))
B列に該当無いという手当ては、CountIFで0かどうかが良いでしょう。
=IF(COUNTIF($B$2:$B$10,C2)=0,"",INDEX($A$1:$A$10,MATCH(C2,$B$1:$B$10,0)))
もしも空白入力したら、上記でカバーできる。
ーー
Match関数のエラー判定ISERRORも使える。
またMATCH関数の代わりにVLOOKUPも考えられるが、取ってくるA列が、検索するB列より左列にあるため使えない。

Qvar aaa=bbb?cccl:ddd; の意味を教えて下さい。

タイトルそのままです。
function内にある
var aaa=bbb?cccl:ddd;
の意味を教えて下さいませ。

Aベストアンサー

がると申します。
これは、三項演算子と呼ばれるものになります。
基本的には
式 ? trueの値 : falseの値
という形を取ります。
上述ですと、
もしbbbが判定式としてtrueを取るのならaaaにccclを、falseになるのならdddを代入する
という感じになるかと思います。

Qエクセルの列が数字になってしまった。

エクセルの列が数字になってしまった。

上記の通り、エクセルは普通列がアルファベット、行が数字だと思うのですが、
ある日突然、列がアルファベット表示から数字に変ってしまい、数式を入力しても絶対参照
がうまく使えず元通りに設定し直したいのですが、どのうすればいいのでしょうか?

Aベストアンサー

ツール、オプション、全般、設定、のR1C1参照形式を使用するのチェックを外してみてください。

Q特定内の
の色を変える

お世話になります。
特定<table>内の<td>の色を変える
<table id="abc">
<tr>
<td>あああああ</td>
<td>いいい</td>
<td>ううう</td>
</tr>
</table>
<table>にはidを定義します。
その<td>タグにはidを定義していません。
このとき、あああああ、いいい、うううの表示色を
<input type="button" value="色を変える" onClick="ChngColor()">

なんてことで、
マウスをクリックすることにより変更できないものでしょうか。
よろしくお願いいたします。

Aベストアンサー

#1さんへの補足より――

> functio ChngColor(){
> var Obj=document.getElementById('abc');
> Obj=document.getElementsByTagName("td");
> for (var i=0;i<Obj.length;i++){
> Obj.style.color="red";
> }
> }

特に3行目がいけない。こう変えましょう。
(あと、詰めすぎは見づらいので、適当に空白を入れました)

function ChngColor() {
var Obj1 = document.getElementById('abc');
var Obj2 = Obj1.getElementsByTagName("td");
for (var i = 0; i < Obj2.length; i++) {
Obj2[i].style.color = "red";
}
}

QエクセルでA列にある数字の合計が特定の数値を超えたらB列に合計を表示させるには

エクセルについての質問です。
以下の様なエクセルの表でA列の合計が、「10」を超える場合、B列に合計を表示させるには、B列にはどの様な関数を入れれば良いでしょうか。お教えください。
なお、最終行にも合計を表示です。

A列 B列
5
4 9
3
5 8
1
2
1
2 6

VBAを知らないため、何とか、関数で対応できると、大変、助かります。

よろしくお願いいたします。

右側の数字がB列の数字です。
解りにくくて、すみません。

Aベストアンサー

例示のようにならない。
B2セルに
=IF(OR(A3="",SUM(A$1:A3)-SUM(B$1:B1)>10),SUM(A$1:A2)-SUM(B$1:B1),"")
下へオートフィル

解決したいと思うなら、もう少し具体的な説明お願いします。
画面の取り込みは([Alt]+[)[PrintScreen]キーで、ペイント等で貼り付け、加工してください

Qエクセル 数字の入っている列をピックアップしたい

エクセルで表を作っており、以下のように各行ばらばらに
違う列に数字が入っています。
また、重複して違う列に数字が入っていることはありません。
この列の中から数字が入っているものを
(入っていないセルは空か0が入っています)
ピックアップした列を作りたいのですが、
適切な関数はありますでしょうか?



 2
  3
   4
    5

Aベストアンサー

1~5がそれぞれAセル~Eセルにあるとすれば、
Fセルに
=a1+b1+c1+d1+e1
と設定して、全行コピーしたらいかがでしょう?
単純すぎますか?

Qの違い

現在jQueryを使ったプログラムをしていて、気になった点があったので質問させていただきました。

具体的には
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"/>
<script type="text/javascript">
function show() {
}
</script>

こんなソースを書いていましたが、showメソッドが認識されていませんでした。

そこで
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"></script>
とかくと、後ろのメソッドも認識されました。

ここで疑問なのは</>と</script>の違いです。
この2つは何がちがうのでしょうか?

現在jQueryを使ったプログラムをしていて、気になった点があったので質問させていただきました。

具体的には
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" charset="utf-8"/>
<script type="text/javascript">
function show() {
}
</script>

こんなソースを書いていましたが、showメソッドが認識されていませんでした。

そこで
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1...続きを読む

Aベストアンサー

https://www.google.com/search?q=HTML+%E7%A9%BA%E8%A6%81%E7%B4%A0
違いっていうか。
<hoge />って書いていいのは「何もはさまないタグ」だけ。<img><link><br>…
<script>は、確かにsrc属性を設定すれば何もはさまなくはなりますが、「はさまないタグ」ではないから「/>」で終わることはできない。<img /> を<img></img>にすることはできるが逆はできません。

試してないから分からないが、質問文の記述では最初の間違ったタグが開始タグとして認識され以降3行がスクリプトとして認識され、結果文法エラーとなっているのでは。というか、その書き方でほかの部分のソースの解釈に影響出てないんですか?

Qエクセルで1列に入っている数字を抜き出したい

お世話になります。

エクセルの2003で1列に入っている数字(文字)を別シートで抜き出したいです。
たとえば、
A列
2001
2002
2003
2001
2003
2004
2004
2001
 :
と、バラバラに長く入っています。
これを別のシートに
A列
2001
2002
2003
2004
とまとめたいのです。
個数等は必要ありません。
純粋に入っている数字の種類を飛ばしたいのです。
宜しくお願いいたします。

Aベストアンサー

こんにちは!

データは数値だという前提で・・・

作業用の列を使うのが一番簡単だと思います。
データはA1セルからあるとします。
Sheet1のB列を作業用の列として、
B1セルに
=IF(COUNTIF(A$1:A1,A1)=1,A1,"")
という数式を入れ、これ以上データはない!というくらいしっかり下へオートフィルでコピーしておきます。

そしてSheet2のA1セルに
=IF(COUNT(Sheet1!B:B)<ROW(A1),"",SMALL(Sheet1!B:B,ROW(A1)))
という数式を入れ下へコピー!

こんなんではどうでしょうか?m(_ _)m

Q 内に書くことはできません」

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてしまいます。
エラーが表示されるタグは下記のようなものです。

<script type="text/javascript">
document.write('<img src="http://~/w3a/writelog.php?ref='+document.referrer+'" width="1" height="1" />');
</script> >

アクセスログは普通に取得できているので問題ないのですが、もし上記エラーを回避する方法があればご教授下さい。よろしくお願いします。

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてし...続きを読む

Aベストアンサー

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタグがエスケープされていないため、これがスクリプトの一部ではなく文書構成要素だと判断されるからです。XHTML 1.0 のスキーマは、script 要素内に img 要素が出現することを許していません。もちろん、スクリプトとしても正しく動作しません。

従って、XML のルールに従ってエスケープする必要があります。特に「<」と「&」は必ずエスケープしなければなりません。

document.write('&lt;img .... />');

ですが面倒なことに、「ニセモノの XHTML」ではこれが動作しなくなります。「ニセモノの XHTML」は、HTML との互換性のために script 要素内の「<」「&」をうまく扱ってくれるのですが、それが仇となり、上記では「&lt;」が「<」に戻りません。

ならば、コメント区間にするのはどうでしょう。XML でもコメント内なら「<」「&」が現れても大丈夫です(ただし「--」だけは駄目です)。

<script type="text/javascript"><!--
document.write('<img .... />');
//--></script>

「ニセモノの XHTML」ならこれでも構いません。しかし、「ホンモノの XHTML」では、コメントは本当に破棄されてしまい、上記では動作すらしなくなります。

そこで、XML/HTML のルールを使わず、JavaScript のルールでエスケープすることを考えます。

document.write('\u003Cimg .... />');

これなら大丈夫でしょう。XML/HTML に限らず、言語が混在する際は必ず適切なエスケープを施す必要があります。エスケープを避けたければ外部スクリプトにして下さい。


なお、ここには別の問題があります。そもそも「ホンモノの XHTML」では、document.write を使用できません。これは HTML 互換の機能だからです(HTML5 に明記されています)。

XHTML を採用するのであれば、それが「ホンモノ」でも「ニセモノ」でも大丈夫なよう、document.write に頼らないコードを作成して下さい。あるいは try...catch で括るなどして、「ニセモノ」として処理されたときのみコードが動作するよう工夫して下さい。あるいはいっそ、XHTML を止めるのも 1 つの選択でしょう。

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報