функция, эквивалентная элементу insertadjacentelement(«перед началом», elm)

#javascript #typescript #prepend #clarity #insertadjacenthtml

Вопрос:

Я не могу использовать insertAdjacentHTML для вставки элемента удаления «перед началом», потому что аргумент типа HTMLElement не может быть присвоен параметру типа String.

deleteElement не может быть передан в качестве аргумента в insertAdjacentHTML, поскольку это элемент HTMLElement не типа string.

 const deleteIcon = `
    <clr-icon
        style="color: #0076CE;">
    </clr-icon>
  `;
  const deleteElement = document.createElement('span');
  deleteElement.innerHTML = deleteIcon;
  deleteElement.addEventListener('click', this.onClick.bind(this));

  const controlIndicator = DOMUtils.findLastSibling(this.el.nativeElement, '.x-indicator');

  if (controlIndicator) {
    // Having issue where argument of type HTMLElement is not assignable to parameter of type String
   controlIndicator.insertAdjacentHTML('beforebegin', deleteElement);
 }
 

Мой обходной путь заключается в использовании добавления, но это, похоже, не эквивалентно утверждению «перед началом».

    controlIndicator.prepend(deleteElement);
 

Есть ли лучший обходной путь, чтобы он был эквивалентен следующему утверждению?

    controlIndicator.insertAdjacentHTML('beforebegin', deleteElement); 
 

Комментарии:

1. Вы можете просто использовать Element.insertAdjacentElement() вместо Element.insertAdjacentHTML()

2. Спасибо @jsejcksn, что работает. Большое спасибо!