function equivalent to insertadjacentelement('beforebegin', elm)

208 Views Asked by At

I am not able to use insertAdjacentHTML to insert deleteElement "before begin" because argument of type HTMLElement is not assignable to parameter of type String.

deleteElement cannot be pass as an argument to insertAdjacentHTML because it is a HTMLElement not of Type 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);
 }

My workaround is to use prepend but that does not seems to equivalent to 'beforebegin' statement.

   controlIndicator.prepend(deleteElement);

Is there a better workaround so that it is equivalent to the following statement?

   controlIndicator.insertAdjacentHTML('beforebegin', deleteElement); 
0

There are 0 best solutions below