从li标签内的字符串替换/删除文本的最佳方法

我正在使用ExpressionEngine中的站点地图列表(因此我没有太多关于如何呈现内容的灵活性)并且我需要从字符串中删除单词“Parent”(如果它存在)。

下面是HTML输出的示例:

我尝试了以下jQuery没有运气,只是根本没有替换这个词:

 $(document).ready(function(){ if($('li:contains("Parent")')){ $(this).replace('Parent',''); }; }); 

正如您所看到的,我正在尝试使用jQuery。 任何人都可以对正确的方法有所了解吗?

jQuery没有replace方法,它是字符串的本机方法,这意味着你必须首先将文本作为字符串获取 ,例如使用text() ,然后再将返回的字符串返回

 $(document).ready(function(){ $('li > a:contains("Parent")').text(function(_, txt) { return txt.replace('Parent',''); }); }); 

您可以将replace()方法与regex一起使用,以确保替换该单词的所有实例。 用字符串replace()只会替换第一次出现。

 $(document).ready(function(){ var elements = $('li'); elements.html(elements.html().replace(/Parent/gi, '')); });