一尘不染

查找没有jQuery的最接近元素

javascript

我试图找到没有jquery的具有特定标签名称的最接近的元素。当我单击a时,<th>我想访问<tbody>该表的。有什么建议吗?我读过有关偏移量的信息,但并不太了解。我应该只使用:

假设已经设置了单击元素

th.offsetParent.getElementsByTagName('tbody')[0]

阅读 251

收藏
2020-05-01

共1个答案

一尘不染

参加聚会的时间很少(非常),但是仍然如此。这应该做的伎俩:

function closest(el, selector) {
    var matchesFn;

    // find vendor prefix
    ['matches','webkitMatchesSelector','mozMatchesSelector','msMatchesSelector','oMatchesSelector'].some(function(fn) {
        if (typeof document.body[fn] == 'function') {
            matchesFn = fn;
            return true;
        }
        return false;
    })

    var parent;

    // traverse parents
    while (el) {
        parent = el.parentElement;
        if (parent && parent[matchesFn](selector)) {
            return parent;
        }
        el = parent;
    }

    return null;
}
2020-05-01