I’m trying to get the closest ancestor element to a clicked element, from an array of provided elements. When a user clicks on a tab, I need to find out where on the page that tab is.
I have something kind of working, however this script thinks main is the closest tag, when it should be article.
If I put article before main in the array it works just fine, however I wan’t this to work regardless of array order. Any ideas?
// Tab Click
var tabs = Array.from(document.querySelectorAll('details.company-details'));
function handleTabClick(e) {
var tabNode = e.target;
tabLabel = tabNode.innerText;
const tgt = e.target;
var location;
var elements = ['section', 'header', 'main', 'nav', 'article'];
for (let element of elements) {
if (tgt.closest(element)) {
location = element;
break;
};
}
console.log(location);
};
tabs.forEach(function(tab) {
tab.addEventListener('click', handleTabClick);
});
<main class="company-main-wrapper" id="maincontent">
<article>
<div class="company-grid-row">
<div class="company-grid-column-two-thirds">
<div class="company-page-content">
<div class="block-expander">
<details class="company-details company-expander" company-polyfilled="true" id="company-details0" open="">
<summary class="company-details__summary" role="button" aria-controls="company-details__text0" tabindex="0" aria-expanded="true">
<span class="company-details__summary-text">
sampoe page
</span>
</summary>
</details>
</div>
</div>
</div>
</div>
</article>
</main>
See the comments inline below:
propecia maker – http://finasteridepls.com/ finasteride gynecomastia
finasteride cost – buy propecia online propecia before and after
tadalafil buy – http://xtadalafilp.com/ tadalafil pills
Kewxbz – Viagra or cialis viagra soft cheap price
Malguq – furosemida 40 mg Ytewoc ylfigq
Huesld – buy zithromax online pharmacy Vgkgxs dszltz
Bqggro – argumentative conclusion Srowdw rvynss
Ufzrlb – cheap silagra Mdcysm ngmfdx
Rsdykn – order tadacip 20 mg Xasaes ikfxvh