使用 javascript innerHTML 为注入消毒 html?

Sanitize html for injection using javascript innerHTML?

需要修复下面的函数以在 listStr 中清理 html,尝试了各种 HTML 转义函数 (listDom.innerHTML = escapeHTML(listStr);) 但我得到的是原始文本作为输出元素!!

    function createList(list) {
        let listStr = "";

        list.forEach(function (item) {

            if (item.click) {
                var clean_url = encodeURIComponent(item.href);
                clean_url = "";
                //console.log(clean_url);
                listStr += `<div class='list_item' id="${item.uid}"><a href="javascript:void(0);">${item.label}</a></div>`;

            } else {
                //'loop', i + ''
                listStr += `<div class='list_item' id="${item.uid}" loop="${item.loop}"><a href="${item.href}">${item.label}</a></div>`;
            }
        });

        listStr += '';

        let listDom = document.createElement("div");
        listDom.setAttribute("id", "list");
        listDom.setAttribute("style", "display: none;");
        listDom.innerHTML = listStr;

        return listDom;
    }

我最后是这样的:

                let listItem = document.createElement('div');
                listItem.setAttribute('class', 'list_item');
                listItem.setAttribute('id', item.uid);

                let linkItem  = document.createElement('a');
                linkItem.setAttribute('href', 'javascript:void(0);');
                linkItem.innerText = item.label;

                listItem.appendChild(linkItem);
                listStr.appendChild(listItem);