查找元素的父节点们
@param {HTMLElement} el 目标元素
@param {HTMLElement} endEl 最大父容器（不指定则找到html）
@param {Boolean} haveEl 包含当前元素
@param {Boolean} haveEndEl 包含设定的最大父容器
function findParents(el) {
  var endEl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
  var haveEl = arguments[2];
  var haveEndEl = arguments[3];

  var retEls = [];
  if (haveEl) {
    retEls.push(el);
  }
  while (el && el.parentNode !== endEl) {
    el = el.parentNode;
    el && retEls.push(el);
  }
  if (haveEndEl) {
    retEls.push(endEl);
  }
  return retEls;
}