@khalel1

Как воспользоваться функцией closest()?

Ваш сайт должен поддерживать IE11. Вы пишите для этого сайта JavaScript и Вам потребовалось найти для DOM-элемента родительский элемент по селектору. Для этого Вы можете воспользоваться функцией closest() *
т.е. document.querySelector('.my-element').closest('.my-parent-element') но closest не поддерживается IE11. Напишите, как бы Вы решили эту проблему без подключения сторонних библиотек
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
@Sun_Day
Использовал полифилл.
Этот
if (!Element.prototype.matches) {
  Element.prototype.matches =
    Element.prototype.msMatchesSelector ||
    Element.prototype.webkitMatchesSelector;
}

if (!Element.prototype.closest) {
  Element.prototype.closest = function(s) {
    var el = this;

    do {
      if (Element.prototype.matches.call(el, s)) return el;
      el = el.parentElement || el.parentNode;
    } while (el !== null && el.nodeType === 1);
    return null;
  };
}


Или

(function(ELEMENT) {
    ELEMENT.matches = ELEMENT.matches || ELEMENT.mozMatchesSelector || ELEMENT.msMatchesSelector || ELEMENT.oMatchesSelector || ELEMENT.webkitMatchesSelector;
    ELEMENT.closest = ELEMENT.closest || function closest(selector) {
        if (!this) return null;
        if (this.matches(selector)) return this;
        if (!this.parentElement) {return null}
        else return this.parentElement.closest(selector)
      };
}(Element.prototype));


https://developer.mozilla.org/en-US/docs/Web/API/E...
https://developer.mozilla.org/ru/docs/Web/API/Elem...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Simkav
@Simkav
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы