code: function nthMatch(first) {
      return function(node, param) {
        var tmp = param.split(/\s+of\s+/);
        if(tmp.length<2) throw Error("no 'of' keyword in nth-match\"s selector");
  
        var params = extractNthValue(tmp[0]),
          sl = tmp[1],
          testNode = node.parentNode[first? "firstChild":"lastChild"],
          next = first? "nextSibling" : "previousSibling",
          step = params.step,
          start = params.start,
          position = 0;
  
          if(!matches(node, sl)) return false;
          if (step === null) return false; //means always false
          do {
            if (testNode.nodeType === 1 && nes.matches(testNode, sl)) position++;
            if (testNode === node) break;
          } while (testNode = testNode[next]);
          
          if (step === 0) return position === start;
          return ((position - start) / step >= 0) && ((position - start) % step === 0);
      };
    }
docs: 6. extension ------------------------------------------------------------- 很多人不看extend文件夹， 所以这部分也作为Demo实例 
  nth Math 的调用方法
  @param  {[type]} first [description]
  @return {[type]}