質問するログイン新規登録
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

3711閲覧

pivottable.jsをカスタマイズしたいです。

flawade3

総合スコア8

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/09/19 22:49

編集2016/09/26 21:42

0

0

###前提・実現したいこと
jqueryのプラグインのpivottable.jsを使ってjsonデータの集計を表示させようとしています。pivottable.jsの機能はとてもいいと思うんですが、自分が使いやすいようにカスタマイズをしたいと思っています。aggregatorsの部分について聞きたいことがあります。今、aggregatorsの部分にcountとsumの命令を入れているのですが、さらにここにcountAsFractionOfRows(Total(行の)を100%としたときのカウント構成比率)の命令を入れたいと思っています。もともと組み込まれている機能ですが、余計なものが多いと思い、count,sum,countAsFractionOfRowsだけにしたいです。

###該当のソースコード

<!DOCTYPE html> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <script src="jquery-1.9.1.min.js"></script> <link rel="stylesheet" type="text/css" href="pivot.css"> <script src="jquery-ui-1.9.2.custom.js"></script> <script src="pivot.js"></script> </head> <body> <script type="text/javascript" > ``` var data = [ {"number":"4","shot":3,"result":"yes","time":"4時20分20秒"}, {"number":"5","shot":1,"result":"no","time":"4時20分23秒"}, {"number":"6","shot":2,"result":"yes","time":"4時20分25秒"}, {"number":"7","shot":1,"result":"no","time":"4時20分35秒"}, {"number":"8","shot":1,"result":"yes","time":"4時20分59秒"}, {"number":"4","shot":2,"result":"no","time":"4時21分10秒"}, {"number":"5","shot":3,"result":"yes","time":"4時21分30秒"}, {"number":"6","shot":2,"result":"no","time":"4時21分49秒"}, {"number":"7","shot":2,"result":"yes","time":"4時22分20秒"}, {"number":"4","shot":3,"result":"no","time":"4時22分24秒"}, {"number":"8","shot":2,"result":"yes","time":"4時22分28秒"}, {"number":"6","shot":2,"result":"no","time":"4時23分40秒"}, {"number":"7","shot":2,"result":"no","time":"4時24分24秒"}, {"number":"8","shot":3,"result":"yes","time":"4時24分50秒"}, {"number":"4","shot":2,"result":"yes","time":"4時24分51秒"}, {"number":"5","shot":1,"result":"no","time":"4時25分10秒"}, {"number":"5","shot":1,"result":"yes","time":"4時25分12秒"}, {"number":"7","shot":2,"result":"no","time":"4時25分46秒"}, {"number":"4","shot":2,"result":"no","time":"4時26分49秒"}, {"number":"7","shot":3,"result":"yes","time":"4時26分59秒"}, {"number":"5","shot":2,"result":"no","time":"4時26分00秒"}, {"number":"6","shot":2,"result":"yes","time":"4時27分00秒"}, {"number":"6","shot":3,"result":"yes","time":"4時28分12秒"}, {"number":"8","shot":3,"result":"yes","time":"4時28分21秒"}, {"number":"5","shot":2,"result":"no","time":"4時28分46秒"}, {"number":"5","shot":3,"result":"yes","time":"4時28分47秒"}, {"number":"7","shot":1,"result":"yes","time":"4時28分49秒"}, {"number":"7","shot":1,"result":"yes","time":"4時29分01秒"}, {"number":"8","shot":1,"result":"no","time":"4時29分10秒"}, {"number":"8","shot":1,"result":"no","time":"4時29分15秒"}, {"number":"6","shot":2,"result":"yes","time":"4時30分56秒"}, {"number":"7","shot":2,"result":"yes","time":"4時30分36秒"}, {"number":"4","shot":3,"result":"no","time":"4時30分37秒"}, {"number":"4","shot":2,"result":"yes","time":"4時31分29秒"}, {"number":"4","shot":1,"result":"no","time":"4時32分10秒"}, {"number":"5","shot":3,"result":"no","time":"4時33分48秒"}, {"number":"6","shot":3,"result":"yes","time":"4時33分59秒"}, {"number":"8","shot":2,"result":"no","time":"4時34分00秒"} ];

$(function(){
var tpl = $.pivotUtilities.aggregatorTemplates;
$("#output").pivotUI(data,
{
rows: ["number"],
cols: ["result","shot"],
vals: ["shot"],
aggregators: {
"シュート数": function() { return tpl.count()() },
"合計": function() { return tpl.sum()(["shot"]) },
"成功率": function() { return tpl.countAsFractionOfRow()() }
},
rendererName: "Table"
},
false
);
});

``````jQuery```

</script>
<div id="output"></div> ``````HTML
</body> </html>

###試したこと
count,sumは上記のソースだけで実装できました。しかし、countAsFractionOfRow()では実装できませんでした。どう書けば実装できるのかどなたか教えてください。
参考にしたページは「PivotTable.jsを使ってjavascriptで集計を簡単に表示するテスト」と「Aggregators」です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/09/20 02:12

コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。また、URLにはリンクを張ることができますので、編集よろしくお願いします。
flawade3

2016/09/26 21:43

ご指摘の通りコードブロックで囲んでみたんですがこんな感じでいいでしょうか。
guest

回答1

0

以下ではいかがでしょうか。

aggregators: { "シュート数": function() { return tpl.count()() }, "合計": function() { return tpl.sum()(["shot"]) }, "成功率": function() { return tpl.fractionOf(tpl.count(), "row")()} },

投稿2017/06/27 02:52

nodenodenode

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問