Javascript 用正则表达式和jQuery替换文本

Javascript 用正则表达式和jQuery替换文本,javascript,jquery,regex,Javascript,Jquery,Regex,我有这样的代码: <li class="capture-details"> Special Instructions <br> <textarea id="catProdInstructions_6795606" class="productTextarea"></textarea> </li> 但这也删除了textarea。然后我试着: $('.capture-details').prepend(text); 但这并没有

我有这样的代码:

<li class="capture-details">
  Special Instructions
   <br>
<textarea id="catProdInstructions_6795606" class="productTextarea"></textarea>
</li>
但这也删除了
textarea
。然后我试着:

$('.capture-details').prepend(text);
但这并没有删除“特殊说明”

如何删除单词
特殊说明

以上代码的一部分


注意:我可以将
textarea
硬编码到我的JS中,但我想避免这种情况,因为
textarea
id和类可能会更改,但单词
特殊说明
不会更改

您只需获取textNode并设置其值即可

$('.capture-details')[0].firstChild.nodeValue = 'Your Personalized Message'

完美!谢谢你的帮助。在IE中测试时要小心,因为有时候IE会在第一个文本节点中单独放置换行符,而你想要的文本会在第二个文本节点中。您不必假设文本位于第一个文本节点中。如果要这样做,你必须找到哪个文本节点包含你的文本。@jfriend00-在IE中工作得很好,在我发布它之前,测试到IE9以确定它。我在猜测哪个文本节点中有内容时遇到了问题。我个人不会那样写代码。没有HTML规范规定它必须按照您编写的方式工作。此外,您的JSFIDLE中没有OP的HTML所具有的换行符,这是导致问题的部分原因。也许我的历史只是IE的旧版本,买它对我来说仍然不是一个安全的假设。@jfriend00-是的,IE8在为任何东西创建空文本节点方面都有问题,这让人头疼,但是谁还会使用IE8呢。在其他浏览器中不应该是问题。
$('.capture-details')[0].firstChild.nodeValue = 'Your Personalized Message'
$(function() {
    var el = $('.capture-details');
    el.html(el.html().replace(/Special Instructions/, 'Your Personalized Message'));
});