HTMLレポートを作成するコードがあります。
htmlテーブルを使用して結果を表示し、テーブルは並べ替え可能で、ゼブラストライプが自動的に適用されるため、Javascriptとそのすべてがインラインで埋め込まれているため、ファイルをユーザーと簡単に共有できます。
私はJavascriptをよく理解しておらず、それを行うのはすでに十分に困難でした。ただし、現在の問題は、一部のセルに大量のデータが含まれている場合があることです。ただし、これは仕様によるものであり、これに対するエレガントな解決策を見つけたいと思っています。
私が欲しいのは、テーブル内の任意のセルを押して表示を切り替えることができるJavascript関数または関数のスイートです。
言い換えれば、多くのセルの行と列を持つテーブルがあります。ユーザーが1つのセルを押すと、その内容が表示されないため、テーブルの残りの部分のサイズが変更されます。したがって、行の高さを変更するコンテンツの行が多いセルは、サイズが縮小されます。
この方法では、大きなセルが見えないため、セルを高くするデータの多くの行をはるかに簡単に比較できます。
行または列全体を非表示にするためにテーブルの外側にボタンを実装するソリューションを見つけました。入力フィールドのあるボタンを使用すると、IDを定義して、そのIDを非表示にすることができます。セルごとに異なる一意のIDを使用するのは賢明ではないと思います。もっと単純なものが必要です。
セルのonclickイベントをキャッチするグローバル関数で、セルの内容が表示を切り替えます。
私は自分の願望を何度も繰り返したことを知っていますが、これが私の願望をより明確にしたことを願っています。
編集:
これが私が最後に行った最後のコードです。うまく機能しているようです:
function tableclick(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
while(target != this && (!target.tagName || target.tagName != "TD")) target = target.parentNode;
if( target != this)
{
toggleVis(target)
}
}
function toggleVis(obj)
{
if ( obj.style.fontSize != "0px" )
{
obj.style.fontSize = "0px"
}
else
{
obj.style.fontSize = "16px"
}
}
onclick=tableclick(event)
次に、テーブルに追加するだけです。