Skip to content

Instantly share code, notes, and snippets.

@partynight12th
Created August 1, 2012 06:10
Show Gist options
  • Save partynight12th/3224193 to your computer and use it in GitHub Desktop.
Save partynight12th/3224193 to your computer and use it in GitHub Desktop.
Yahoo!のメダルランキング( http://london.yahoo.co.jp/medal/ )の順位付け方法が気に喰わないので、オレオレ手法でランキングしなおすJS書いた。Chromeのデベロッパーツールとか、FirefoxのFirebugとかのコンソールにコピペして使う。
var r = {};
r.goldpoint = 7;
r.silverpoint = 3;
r.copperpoint = 1;
r.$table = $(".tableForm").find("tbody");
$.ajax({
url: "http://london.yahoo.co.jp/medal/?page=2",
async: false,
success: function(data, status){
var $lines2 = $(data).find(".tableForm").find("tbody tr");
r.$table.append($lines2);
}
});
r.$lines = r.$table.find("tr");
r.$lines.each(function(){
var g = $(this).find(".tdMedalCountGold").text();
var s = $(this).find(".tdMedalCountSilver").text();
var c = $(this).find(".tdMedalCountCopper").text();
$(this).data("point", g * r.goldpoint + s * r.silverpoint + c * r.copperpoint);
$(this).data("prerank", $(this).find(".rank").text());
});
r.$lines.sort(function(a,b){
var ret = $(b).data("point") - $(a).data("point");
if(ret == 0){
ret = $(a).data("prerank") - $(b).data("prerank");
}
return ret;
});
r.$lines.removeClass("even");
r.$lines.filter("*:even").addClass("even");
r.$lines.find(".tdRank p").removeClass("rank01 rank02 rank03 rankUnder");
r.rank = 1;
r.prevpoint = 0;
r.prevrank = 0;
r.$lines.each(function(){
var $t = $(this);
var $rankcell = $t.find(".rank");
var appendrank = 0;
if($t.data("point") === r.prevpoint){
$rankcell.html(r.prevrank + "<small>(" + $rankcell.text() + ")</small>");
appendrank = r.prevrank;
}else{
$rankcell.html(r.rank + "<small>(" + $rankcell.text() + ")</small>");
r.prevrank = r.rank;
appendrank = r.rank;
}
r.rank+=1;
r.prevpoint = $t.data("point");
if(appendrank < 4){
$rankcell.addClass("rank0"+appendrank);
}else{
$rankcell.addClass("rankUnder");
}
});
r.$table.html( r.$lines );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment