function getPosition(el) {
let rect,
x = 0, y = 0;
if (el) {
rect = el.getBoundingClientRect();
x = rect.left + (window.scrollX || window.pageXOffset);
y = rect.top + (window.scrollY || window.pageYOffset);
}
return {left: x, top: y};
}
function tooltiphide(el) {
document.querySelector('#' + el.tooltipID).remove();
}
function tooltipshow(el, name, text) {
var position = getPosition(el),
tooltip = document.createElement('div'),
tooltipName = 'tooltip-' + name + '-' + Math.floor(Math.random() * 9999999999) + 1;
el.tooltipID = tooltipName;
tooltip.setAttribute('id', tooltipName);
tooltip.setAttribute('class', 'tooltip');
tooltip.style.top = position.top + el.offsetHeight;
tooltip.style.left = position.left;
tooltip.insertAdjacentHTML('afterbegin', '<div class=\"text\">' + text + '</div><div class=\"tail\"></div>');
document.body.insertAdjacentElement('beforeend', tooltip);
}
<span onmouseover='tooltipshow(this, "type1", "tooltip text....")' onmouseout='tooltiphide(this)'>text</span>
Теперь легко скрыть подсказку по идентификатору, код вызова после изменения DOM:
document.querySelectorAll('div[id^=\"tooltip-type1\"]').remove();
@ скрыть ваше решение с помощью el.toolTip="toolTip" + toolTipCounter
было полезно, спасибо