#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, что работает. Большое спасибо!