JSFiddle - React, Tailwind, and code Playground

HTML

<div class="wrap">
  <ul>
    <li>This is</li>
    <li>A list</li>
    <li>And I want</li>
    <li>This should not be bold</li>
    <li>To wrap</li>
    <li>This</li>
    <li>strong</li>
    <li>li</li>
  </ul>
  <span><p><em>This is another random tag</em></p></span>
</div>

JavaScript

var list = [{
        original: 'This is another random tag',
        new: 'This is another random tag that should be bold'
      }, {
        original: 'This is',
        new: 'New this is'
      }, {
        original: 'A list',
        new: 'New A list'
      }, {
        original: 'And I want',
        new: 'New And I want'
      }, {
        original: 'To wrap',
        new: 'New To wrap'
      }, {
        original: 'li',
        new: 'bold'
      }, {
        original: 'This',
        new: 'New This'
      }, {
        original: 'strong',
        new: 'bold'
      }

    ];


    //I want for each expression in this array, to find that expression in array, replace-it and make-it bold with a <strong> tag.

    var div = document.getElementsByClassName("wrap")[0];

    function processNode(node) {
      if (node.nodeName === "#text") {
        list.forEach(function(item, index) {
          if (node.parentNode && node.textContent.indexOf(item.original) > -1) {
            //node.textContent = node.textContent.replace(item.original, item.new);

            let untouched = node.textContent.split(item.original);
            console.log(untouched);
            for (let i = untouched.length - 1; i > 0; i--) {
              untouched.splice(i, 0, item.new);
            }
            console.log(untouched);
            for (let i = 0, l = untouched.length; i < l; i++) {
              let newNode = i % 2 === 0 ? document.createTextNode("") : document.createElement("strong");
              newNode.textContent = untouched[i];
              node.parentNode.appendChild(newNode);
            }
            node.parentNode.removeChild(node);
          }
        })
      } else {
        node.childNodes.forEach(function(child, index) {
          processNode(child);
        })
      }
    }

    processNode(div)