「javascript/サーヴァント一覧」の編集履歴(バックアップ)一覧に戻る

javascript/サーヴァント一覧 - (2016/01/18 (月) 15:05:35) のソース

#js(){{{{{
<meta charset="utf-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://img.atwikiimg.com/www9.atwiki.jp/f_go/pub/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript">
var rows;

// main
function onLoadData(data) {
	// jsonp -> 2次元配列
	jsonp2rows(data);
	// table作成
	tableCreate();
}
// Googleスプレッドシートからjsonp形式のデータを取得
$(document).ready(function(){
	var url = "https://spreadsheets.google.com/feeds/cells/13I84mtXMeSsO6JrpSm-Xg3g5LAeEtDP9R4V-ypB7M60/1/public/values";
	var params = {
		alt: "json-in-script"
	};
	$.ajax({
		url: url,
		dataType: "jsonp",
		data: params,
		success: onLoadData
	});
});
// jsonp -> 2次元配列
function jsonp2rows(data){
	rows = [];
	$(data.feed.entry).each(function(){
		var row = parseInt(this.gs$cell.row);
		var col = parseInt(this.gs$cell.col);
		var t = this.gs$cell.$t;
		while(rows.length < row) {
			rows.push([]);
		}
		while(rows[row-1].length < col) {
			rows[row-1].push('');
		}
		rows[row-1][col-1] = t;
		//console.log(rows);
	});
}
// テーブル作成
function tableCreate(){
	var table = $('<table id="sort">');
	var tbody = $('<tbody>');
	
	// 選択された列を確認
	var select = check();
	$(rows).each(function(){
		// head
		if(this[0] == "No."){
			var tr = $('<tr>');
			$(select).each(function(){
				var th = $('<th style="background-color:#e6e6fa; text-align:center; height:2em;">');
				tr.append(th.text(""+rows[0][this]));
			});
			table.append($('<thead>').append(tr));
		}
		// body
		else{
			tbody = appendTr(tbody, this, select);
		}
	});
	table.append(tbody);
	$("#view1").html("").append(table);
	$('#sort').tablesorter();
}
// tr td要素の追加
function appendTr(tbody, srv, select){
	var tr = $("<tr>");
	var flag = 0;
	
	for(var i=0; i<srv.length; i++){
		// 条件に合わない行を非表示
		flag = display(tr, srv, i);
		if(flag == 1){break;}
		// 選択された列のみを表示
		$(select).each(function(){
			var td = '<td>';
			if(i == this){
				if(	rows[0][i] == "min_H" || 
					rows[0][i] == "min_A" || 
					rows[0][i] == "max_H" || 
					rows[0][i] == "max_A"){td = '<td style="text-align:right;">';}
				else if(
					rows[0][i] != "Name" && 
					rows[0][i] != "保有スキル1" && 
					rows[0][i] != "保有スキル2" && 
					rows[0][i] != "保有スキル3" && 
					rows[0][i] != "クラススキル1" && 
					rows[0][i] != "クラススキル2" && 
					rows[0][i] != "クラススキル3" && 
					rows[0][i] != "クラススキル4"){td = '<td style="text-align:center;">';}
				tr.append($(td).text(""+srv[i]));
			}
		});
	}
	if(flag != 1){tbody.append(tr);}
	return tbody;
}
// 選択された列を確認
function check(){
	var select = ["0","3"];
	for(var i=1; i<=12; i++){
		if(document.forms["form1"].elements["c" + i].checked){
			var str = document.forms["form1"].elements["c" + i].value;
			var num = str.split(",");
			Array.prototype.push.apply(select, num);
		}
	}
	select.sort(function(a, b) {return (parseInt(a) > parseInt(b)) ? 1 : -1;});
	return select;
}
// 条件に合わない行を非表示
function display(tr, srv, num){
	// 最初の行は無条件で表示
	if(srv[0]=="No."){}
	else{
		// Rare
		if(rows[0][num] == "Rare"){
			if(	document.form1.rare1.value > srv[num] || 
				document.form1.rare2.value < srv[num]){return 1;}
		}
		// Class
		else if(rows[0][num] == "Class"){
			if(	document.form1.class1.value != '全' && 
				document.form1.class1.value != srv[num]){return 1;}
		}
		// 成長タイプ
		else if(rows[0][num] == "Grow"){
			if(	document.form1.grow1.value != '全' && 
				document.form1.grow1.value != srv[num]){return 1;}
		}
		// HP/ATK
		else if(rows[0][num] == "min_H"){
			if(	document.form1.minH1.value - srv[num] > 0 ){return 1;}
			if(	document.form1.minH2.value - srv[num] < 0  && 
				document.form1.minH2.value != 0 ){return 1;}
		}
		else if(rows[0][num] == "min_A"){
			if(	document.form1.minA1.value - srv[num] > 0 ){return 1;}
			if(	document.form1.minA2.value - srv[num] < 0  && 
				document.form1.minA2.value != 0 ){return 1;}
		}
		else if(rows[0][num] == "max_H"){
			if(	document.form1.maxH1.value - srv[num] > 0 ){return 1;}
			if(	document.form1.maxH2.value - srv[num] < 0  && 
				document.form1.maxH2.value != 0 ){return 1;}
		}
		else if(rows[0][num] == "max_A"){
			if(	document.form1.maxA1.value - srv[num] > 0 ){return 1;}
			if(	document.form1.maxA2.value - srv[num] < 0  && 
				document.form1.maxA2.value != 0 ){return 1;}
		}
		// カード
		else if(rows[0][num] == "Noble"){
			if(	document.form1.range1.value != '全' && 
				srv[num].indexOf(document.form1.range1.value) == -1){return 1;}
			if(	document.form1.type1.value != '全' && 
				srv[num].indexOf(document.form1.type1.value) == -1){return 1;}
		}
		else if(rows[0][num] == "Card"){
			if(	document.form1.deck1.value != '全' && 
				document.form1.deck1.value != srv[num]){return 1;}
		}
	}
}
</script>
}}}}}
#html2(){{{
<form name="form1" id="form1">
<table>
	<tbody>
		<tr>
			<td colspan="2"><input type="checkbox" name="c1" value="1" checked="checked">レアリティ</td>
			<td colspan="3">
				<select name="rare1" style="width:75px;">
					<option value="1" selected>☆1 C</option>
					<option value="2">☆2 U</option>
					<option value="3">☆3 R</option>
					<option value="4">☆4 SR</option>
					<option value="5">☆5 SSR</option>
				</select>
				 ~ 
				<select name="rare2" style="width:75px;">
					<option value="1">☆1 C</option>
					<option value="2">☆2 U</option>
					<option value="3">☆3 R</option>
					<option value="4">☆4 SR</option>
					<option value="5" selected>☆5 SSR</option>
				</select>

			</td>
		</tr>
		<tr>
			<td colspan="2"><input type="checkbox" name="c3" value="4" checked="checked">クラス</td>
			<td colspan="3"><select name="class1" style="width:130px;">
				<option value="全">すべてのクラス</option>
				<option value="剣">セイバー</option>
				<option value="弓">アーチャー</option>
				<option value="槍">ランサー</option>
				<option value="騎">ライダー</option>
				<option value="術">キャスター</option>
				<option value="殺">アサシン</option>
				<option value="狂">バーサーカー</option>
			</select></td>
		</tr>
		<tr>
			<td colspan="2"><input type="checkbox" name="c4" value="5" checked="checked">成長タイプ</td>
			<td colspan="3"><select name="grow1" style="width:130px;">
				<option value="全">すべて</option>
				<option value="凸型">凸型 : 中盤成長</option>
				<option value="凸型弱">凸型弱</option>
				<option value="平均">平均</option>
				<option value="凹型弱">凹型弱</option>
				<option value="凹型">凹型 : 両端成長</option>
			</select></td>
		</tr>
		<tr>
			<td rowspan="2"><input type="checkbox" name="c5" value="6,7" checked="checked">初期</td>
			<td>HP</td>
			<td colspan="3">
				<input type="text" size="6" name="minH1" value="0"> ~ <input type="text" size="6" name="minH2" value="0">
			</td>
		</tr>
		<tr>
			<td>ATK</td>
			<td colspan="3">
				<input type="text" size="6" name="minA1" value="0"> ~ <input type="text" size="6" name="minA2" value="0">
			</td>
		</tr>
		<tr>
			<td rowspan="2"><input type="checkbox" name="c6" value="8,9" checked="checked">最大</td>
			<td>HP</td>
			<td colspan="3">
				<input type="text" size="6" name="maxH1" value="0"> ~ <input type="text" size="6" name="maxH2" value="0">
			</td>
		</tr>
		<tr>
			<td>ATK</td>
			<td colspan="3">
				<input type="text" size="6" name="maxA1" value="0"> ~ <input type="text" size="6" name="maxA2" value="0">
			</td>
		</tr>
		<tr>
			<td rowspan="3"><input type="checkbox" name="c7" value="10,11" checked="checked">Card</td>
			<td rowspan="2">宝具</td>
			<td colspan="3"><select name="range1" style="width:130px;">
				<option value="全">すべて</option>
				<option value="単体">単体</option>
				<option value="全体">全体</option>
				<option value="補助">補助</option>
			</select></td>
		</tr>
		<tr>
			<td colspan="3"><select name="type1" style="width:130px;">
				<option value="全">すべて</option>
				<option value="Q">Quick</option>
				<option value="A">Arts</option>
				<option value="B">Buster</option>
			</select></td>
		</tr>
		<tr>
			<td>配分</td>
			<td colspan="3"><select name="deck1" style="width:130px;">
				<option value="全">すべて</option>
				<option value="QQQAB">QQQAB:3 Quick</option>
				<option value="QAAAB">QAAAB:3 Arts</option>
				<option value="QABBB">QABBB:3 Buster</option>
				<option value="QAABB">QAABB:-1 Quick</option>
				<option value="QQABB">QQABB:-1 Arts</option>
				<option value="QQAAB">QQAAB:-1 Buster</option>
			</select></td>
		</tr>
		<tr>
			<td rowspan="2" colspan="2">その他</td>
			<td><input type="checkbox" name="c2" value="2">コスト</td>
			<td><input type="checkbox" name="c8" value="12,13,14">保有スキル</td>
			<td><input type="checkbox" name="c9" value="15,16,17,18">クラススキル</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="c10" value="19">実装日</td>
			<td><input type="checkbox" name="c11" value="20,21,22,23,24">プロフィール</td>
			<td><input type="checkbox" name="c12" value="25,26,27,28,29,30">パラメータ</td>
		</tr>
		<tr align=center>
			<td colspan="5"><form name="btn1" id="btn1">
				<input type="button" value="表示" onclick="tableCreate()">
			</form></td>
		</tr>
	</tbody>
</table>
</form>
<div id="view0"></div>
<div id="view1" class="zeb"></div>
}}}