Alcuinus

w3c selectors list filter v2

Sep 29th, 2011
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name           My Selector Script
  3. // @description    A brief description of your script
  4. // @author         Your Name
  5. // @include        http://www.w3.org/TR/css3-selectors/
  6. // @version        1.0
  7. // ==/UserScript==
  8.  
  9. var headers = document.querySelectorAll(".selectorsReview thead th");
  10. for (var i = 0; i < headers.length; i++)
  11.   headers[i].style.cursor = "pointer";
  12.  
  13. document.querySelector(".selectorsReview thead .origin").onclick = function(){
  14.   var arr = [];
  15.   var nodeList = document.querySelectorAll(".selectorsReview tbody tr");
  16.   var parent = nodeList[0].parentNode;
  17.   for(var i = 0; i < nodeList.length; i++) {
  18.     arr.push(nodeList[i]);
  19.     nodeList[i].parentNode.removeChild(nodeList[i])
  20.   }
  21.   arr.sort(function(a,b){
  22.     var aval = a.querySelector(".origin").innerHTML + " " + a.querySelector(".pattern").innerHTML;
  23.     var bval = b.querySelector(".origin").innerHTML + " " + b.querySelector(".pattern").innerHTML;
  24.     return aval.localeCompare(bval);
  25.   });
  26.  
  27.   for (var i = 0; i < headers.length; i++)
  28.     if(this !== headers[i])
  29.       headers[i].removeAttribute("data-sortorder");
  30.  
  31.   if (this.getAttribute("data-sortorder") === "asc")
  32.   {
  33.     arr.reverse();
  34.     this.setAttribute("data-sortorder","desc");
  35.   } else {
  36.     this.setAttribute("data-sortorder","asc");
  37.   }
  38.  
  39.   for(var i = 0; i < arr.length; i++) {
  40.     parent.appendChild(arr[i])
  41.   }
  42. }
  43.  
  44. document.querySelector(".selectorsReview thead .described").onclick = function(){
  45.   var arr = [];
  46.   var nodeList = document.querySelectorAll(".selectorsReview tbody tr");
  47.   var parent = nodeList[0].parentNode;
  48.   for(var i = 0; i < nodeList.length; i++) {
  49.     arr.push(nodeList[i]);
  50.     nodeList[i].parentNode.removeChild(nodeList[i])
  51.   }
  52.   arr.sort(function(a,b){
  53.     var aval = a.querySelector(".described a").innerHTML + " " + a.querySelector(".pattern").innerHTML;
  54.     var bval = b.querySelector(".described a").innerHTML + " " + b.querySelector(".pattern").innerHTML;
  55.     return aval.localeCompare(bval);
  56.   });
  57.  
  58.   for (var i = 0; i < headers.length; i++)
  59.     if(this !== headers[i])
  60.       headers[i].removeAttribute("data-sortorder");
  61.  
  62.   if (this.getAttribute("data-sortorder") === "asc")
  63.   {
  64.     arr.reverse();
  65.     this.setAttribute("data-sortorder","desc");
  66.   } else {
  67.     this.setAttribute("data-sortorder","asc");
  68.   }
  69.  
  70.   for(var i = 0; i < arr.length; i++) {
  71.     parent.appendChild(arr[i])
  72.   }
  73. }
  74.  
  75. document.querySelector(".selectorsReview thead .meaning").onclick = function(){
  76.   var arr = [];
  77.   var nodeList = document.querySelectorAll(".selectorsReview tbody tr");
  78.   var parent = nodeList[0].parentNode;
  79.   for(var i = 0; i < nodeList.length; i++) {
  80.     arr.push(nodeList[i]);
  81.     nodeList[i].parentNode.removeChild(nodeList[i])
  82.   }
  83.   arr.sort(function(a,b){
  84.     return a.querySelector(".meaning").innerHTML.localeCompare(b.querySelector(".meaning").innerHTML);
  85.   });
  86.  
  87.   for (var i = 0; i < headers.length; i++)
  88.     if(this !== headers[i])
  89.       headers[i].removeAttribute("data-sortorder");
  90.  
  91.   if (this.getAttribute("data-sortorder") === "asc")
  92.   {
  93.     arr.reverse();
  94.     this.setAttribute("data-sortorder","desc");
  95.   } else {
  96.     this.setAttribute("data-sortorder","asc");
  97.   }
  98.  
  99.   for(var i = 0; i < arr.length; i++) {
  100.     parent.appendChild(arr[i])
  101.   }
  102. }
  103.  
  104. document.querySelector(".selectorsReview thead .pattern").onclick = function(){
  105.   var arr = [];
  106.   var nodeList = document.querySelectorAll(".selectorsReview tbody tr");
  107.   var parent = nodeList[0].parentNode;
  108.   for(var i = 0; i < nodeList.length; i++) {
  109.     arr.push(nodeList[i]);
  110.     nodeList[i].parentNode.removeChild(nodeList[i])
  111.   }
  112.   arr.sort(function(a,b){
  113.     return a.querySelector(".pattern").innerHTML.localeCompare(b.querySelector(".pattern").innerHTML);
  114.   });
  115.  
  116.   for (var i = 0; i < headers.length; i++)
  117.     if(this !== headers[i])
  118.       headers[i].removeAttribute("data-sortorder");
  119.  
  120.   if (this.getAttribute("data-sortorder") === "asc")
  121.   {
  122.     arr.reverse();
  123.     this.setAttribute("data-sortorder","desc");
  124.   } else {
  125.     this.setAttribute("data-sortorder","asc");
  126.   }
  127.  
  128.   for(var i = 0; i < arr.length; i++) {
  129.     parent.appendChild(arr[i])
  130.   }
  131. }
  132.  
Advertisement
Add Comment
Please, Sign In to add comment