1. ホーム
  2. javascript

[解決済み] jQueryを使わずに最も近い要素を見つける

2023-02-12 19:09:53

質問

jqueryを使わずに、特定のタグ名を持つ最も近い要素を見つけようとしています。私がクリックしたとき <th> にアクセスできるようにしたいのです。 <tbody> にアクセスしたいのですが。提案はありますか?オフセットについて読みましたが、あまり理解できませんでした。私はちょうど使用する必要があります。

thはすでにクリックされたthの要素に設定されていると仮定します。

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

どのように解決するのですか?

少し(とても)遅れての参加ですが、それでも。これは トリック :

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;
}