

「jquery.csv2table.js」から生成されたテーブルに「super tables」を適用したい。
csv2tablesを使用して、テーブルの作成・表示はできるのですが、一部の行と列を
固定したいと考えています。色々検索した結果、「super tables」が良いかと思い、
以下のサイトを参考にスクリプトを追加していますが、エラーが表示され、固定
された表示になりません。
以下にスクリプトの情報等を記載します。書き方がそもそも間違っている等、
ご教示下さい。よろしくお願いします。
<参考にしたサイト>
http://c-brains.jp/blog/wsg/09/06/16-151445.php
<IE8のエラーメッセージ>
Web ページ エラーの詳細
ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C)
タイムスタンプ: Sun, 29 Aug 2010 14:44:55 UTC
メッセージ: 'this.sDataTable.tBodies.0' は Null またはオブジェクトではありません。
superTables.js ライン: 92
文字: 3
コード: 0
<HTML・スクリプト>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<link rel="stylesheet" href="./css/superTables.css" type="text/css" />
<script type="text/javascript" src="./js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="./js/jquery.csv2table.js"></script>
<script type="text/javascript" src="./js/superTables.js"></script>
<script type="text/javascript">
$(function(){
$('#view1').csv2table('./test.csv');
});
</script>
<style type="text/css">
.fakeContainer {
margin: 0 0 20px;
width: 600px;
height: 200px;
overflow: hidden;
}
</style>
</head>
<body>
<div id="view1" class="fakeContainer"></div>
<script type="text/javascript">
//<![CDATA[
(function () {
new superTable("view1", {
cssSkin : "sDefault",
headerRows : 1,
fixedCols : 3
});
})();
//]]>
</script>
</body>
</html>
<test.csvの内容>
No,項目1,項目2,項目3,項目4,項目5,項目6,項目7,項目8,項目9,項目10
1,,,,,,,,,,
2,,,,,,,,,,
3,,,,,,,,,,
4,,,,,,,,,,
5,,,,,,,,,,
6,,,,,,,,,,
7,,,,,,,,,,
8,,,,,,,,,,
9,,,,,,,,,,
10,,,,,,,,,,
11,,,,,,,,,,
12,,,,,,,,,,
13,,,,,,,,,,
14,,,,,,,,,,
15,,,,,,,,,,
16,,,,,,,,,,
17,,,,,,,,,,
18,,,,,,,,,,
19,,,,,,,,,,
20,,,,,,,,,,
No.1ベストアンサー
- 回答日時:
csv2table、superTableはおろかjqueryも殆ど触ったことがないので参考程度にしてください。
superTableの第一引数はtable要素のidを指定しないといけないのではないかと思います。
で、csv2tableで作られたtableにはidが設定されていません。
ですので自分で設定しなければいけないようです。
また、確実にcsv2tableでtableが作成された後にsuperTableの処理が動くように
onloadを使わないといけないのかなと思います。
正しいやり方かわかりませんが、
csv2table.jsに
var tableHtm=$.csv2table._doc.getElementById(id).innerHTML="<table>"+htm+"</table>";
というようなコードがあると思いますので、これを
var tableHtm=$.csv2table._doc.getElementById(id).innerHTML="<table id='"+op.tableId+"'>"+htm+"</table>";
に変更しtableのIDを設定できるようにします。
そして、
om7700さんのソースコードの
$('#view1').csv2table('./test.csv');
を
$('#view1').csv2table('./test.csv',
{tableId : 'hoge'
,onload : function(id,op,data,array) {
new superTable("hoge", {
cssSkin : "sDefault",
headerRows : 1,
fixedCols : 3
});
}
});
と変更してtableにIDを設定し、tableが出来上がったあとにsuperTableの処理が動くようにします。
IE8ではとりあえず動きました。
yamada_g様。
示された通りに修正したところ、期待通りの動作となりました。Javascriptは勉強を始めたばかりで「csv2table.js」自体のソースを確認するということまで考えがおよびませんでした。もっと勉強してyamada_g様のような考え方ができるようになれたらと思います。
本当に助かりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクト配列の各メンバを...
-
Outlookのアカウントがあるとメ...
-
スマホ上で、左右スワイプで次...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<div>のタッチ状態を維持したま...
-
プラグイン無しでContactform7...
-
Base64に変換したHTMLの<script...
-
jqeryのslicksliderのパスにつ...
-
jqueryのcolorboxを読込直後に...
-
Javascriptのエラーに悩まされ...
-
FC2 ブログで動作しない jQuery
-
colorboxの直接呼び出し方法に...
-
base64encodeでの文字化けについて
-
CKeditorについて
-
マウスオーバー+クリカブルマッ...
-
スライド写真で2、3枚目をラ...
-
マスターページでのJavaScriopt...
-
Photo Sliderの画像にリンクを...
-
javaスクリプトについて質問で...
-
nyroModal HEADタグ内の記述に...
-
ASP.NETでAjax通信する際について
-
lightbox2 表示の不具合
-
mootoolsとjQueryの共存がうま...
-
IEだけjsファイルを読み込まな...
おすすめ情報