jquery替换不起作用

DEMO

嗨我试图从JS中删除箭头。 但似乎替换不起作用:-(

« Previous Next » $('.pr-page-prev').text().replace(/«/, '') $('.pr-page-next').text().replace(/»/, '') 

您正在替换文本而不是元素的内容。

当你说$('.pr-page-prev').text() ,它返回你正在调用replace的文本内容,它将返回被替换的文本,但它不会被设置回元素。 因此,即使您已经替换了文本,它也不会应用于元素。

 $('.pr-page-prev').text(function(i, text){return text.replace(/«/, '')}) $('.pr-page-next').text(function(i, text){return text.replace(/»/, '')}) 

演示: 小提琴

那是因为你没有对替换的结果做任何事情:

例如

 $('.pr-page-prev').text($('.pr-page-prev').text().replace(/«/, '')); 

或者使用函数而不是值:

 $('.pr-page-prev').text(function(){ return $(this).text().replace(/«/, '')); 

http://jsfiddle.net/TrueBlueAussie/t1rru99a/6/

或者更好的是,将它们组合成一个操作(显示的正则表达式将匹配任一字符):

 $('.pr-page-prev,.pr-page-next').text(function () { return $(this).text().replace(/[«»]/, '') }); 

JSFiddle: http //jsfiddle.net/TrueBlueAussie/t1rru99a/9/

您可以将值“«”替换为“space”。

 $(".pr-page-prev").text(function(i, val) { return val.replace(/«/g, " "); }); $(".pr-page-next").text(function(i, val) { return val.replace(/»/g, " "); }); 

工作演示

你正在替换字符串但不改变显示的内容……你需要做的是使用text()方法来获取和设置数据,这是一个例子:

 $('.pr-page-prev').text($('.pr-page-prev').text().replace("«", '')) 

问题是您正在尝试访问/读取文本但不会将其写回。 要将其写回来,您还需要替换文本。 你可以通过JSFiddle来做到这一点 。

 $('.pr-page-prev').text($('.pr-page-prev').text().replace("«", '')) $('.pr-page-next').text($('.pr-page-next').text().replace("»", ''))