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'));
});