XMLデータを読み込んでテーブルに表示する

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
(function($){
	$.loadXML = function(xmlPath, tableId){
		$.ajax({
			url: xmlPath + "?" + (new Date()).getTime(),
			type: "GET",
			dataType: "xml",
			timeout: 5000,
			error: function(){
				alert("XMLデータの読み込み中にエラーが発生しました。");
			},
			success: function(xml){
				tableId = "table#" + tableId;
				var table = $(tableId);

				$(tableId + " tr:gt(0)").remove();

				$(xml).find("books").find("data").each(function(){
					var id = $('<td  class="center">').html($(this).attr("id"));
					var name = $("<td>").html($(this).find("name").text());
					var size = $("<td>").html($(this).find("size").text());
					var supplement = $('<td  class="center">').html($(this).find("supplement").text());

					var tr = $("<tr>").append(id).append(name).append(size).append(supplement);

					table.append(tr);
				});

				tableRowColor("row-color");
			}
		});
	}
})(jQuery);
function tableRowColor(classNameTable, classNameEven, classNameOdd){
	var table;
	var children;
	var tables = document.getElementsByTagName("table");

	classNameEven = classNameEven ? classNameEven : "even";
	classNameOdd = classNameOdd ? classNameOdd : "odd";

	for(var i=0; table=tables[i]; i++){
		if(table.className.indexOf(classNameTable, 0) != -1){
			var row;
			var rows = table.getElementsByTagName("tr");

			for(var j=1; row=rows[j]; j++){
				if(j % 2 == 0){
					row.className = classNameEven;
				}else{
					row.className = classNameOdd;
				}
			}
		}
	}
}
$(function(){
$("a.filterAll").click(function(){
	$.loadXML("data/booksAll.xml", "books");
	return false;
});

$("a.filter01").click(function(){
	$.loadXML("data/books01.xml", "books");
	return false;
});

$("a.filter02").click(function(){
	$.loadXML("data/books02.xml", "books");
	return false;
});

tableRowColor("row-color");
});
</script>
<style type="text/css">
a {
	color: #00597f;
}
ul {
	list-style: none;
	padding: 0px;
	margin: 10px 0px 10px;
}
li {
	display: inline;
	font-size: 1.2em;
	margin-right: 10px;
}
li a {
	background: url(../images/arrow_right.gif) no-repeat 0px 4px;
	padding-left: 10px;
}
table {
	font-size: 1.2em;
	color: #454545;
	background-color: #cac9c9;
}
tr.header {
	color: #00597f;
	background-color: #e6eeee;
}
tr.odd {
	background-color: #fff;
}
tr.even {
	background-color: #f0f0f6;
}
th {
	padding: 4px 0px 3px 0px;
	border: solid 1px #fff;
}
td {
	padding: 5px 7px 4px 7px;
	border: solid 1px #fff;
}
td.center {
	text-align: center;
}
</style>
</head>
<body>
<h1>XMLデータを読み込んでテーブルに表示する</h1>
<ul>
	<li><a href="./index.html" class="filterAll">すべてを表示</a></li>
	<li><a href="./index.html" class="filter01">付録なしを表示</a></li>
	<li><a href="./index.html" class="filter02">付録ありを表示</a></li>
</ul>
<table id="books" class="row-color" border="0" cellspacing="1" cellpadding="0">
	<tr class="header">
		<th width="30">No.</th>
		<th width="210">雑誌名</th>
		<th width="110">サイズ</th>
		<th width="70">付録</th>
	</tr>
	<tr>
		<td class="center">1</td>
		<td>HTML</td>
		<td>352P</td>
		<td class="center">なし</td>
	</tr>
	<tr>
		<td class="center">2</td>
		<td>CSS</td>
		<td>160P</td>
		<td class="center">CD-ROM</td>
	</tr>
	<tr>
		<td class="center">3</td>
		<td>JavaScript</td>
		<td>192P</td>
		<td class="center">なし</td>
	</tr>
	<tr>
		<td class="center">4</td>
		<td>PHP</td>
		<td>176P</td>
		<td class="center">なし</td>
	</tr>
</table>
</body>
</html>