If that's the case, then why not get rid of the query all together and eliminate the additional innerHTML operation:


```js
...snip...

  // Create HTML content
  var messageHTML = '<label class="danger">' +
                    '<input type="checkbox" value="' + inputValue + '">' +
                    '<span></span>' +
                    '</label>' +
                    '<a class="' + messageClass + '">';
  messageHTML += asideHTML;

  // Call to generic, non-this-sensitive function: 
  messageHTML += '<p>' + tappablePhoneNumbers(bodyHTML) + '</p></a>';

  messageDOM.innerHTML = messageHTML;

  return this.searchAndLinkPhoneData(messageDOM, bodyHTML);
}

...

// There is nothing "dynamic" about this regex, so there is no need to recompile it everytime it's used
var regPhone = /(\+?1?[-.]?\(?([0-9]{3})\)?[-.]?)?([0-9]{3})[-.]?([0-9]{4})([0-9]{1,4})?/gm;

function tappablePhoneNumbers(body) {
  return body.replace(regPhone, function(phone) {
    return '<a class="phone-link" val="' + phone + '">' + phone + '</a>';
  });
}

```