jquery替换不起作用

时间:2015-03-17 09:33:04

标签: javascript jquery

DEMO

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

<a class="pr-page-prev">« Previous</a>
<a class="pr-page-next">Next »</a>


$('.pr-page-prev').text().replace(/&laquo;/, '')
$('.pr-page-next').text().replace(/&raquo;/, '')

5 个答案:

答案 0 :(得分:9)

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

当你说$('.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(/»/, '')})

演示:Fiddle

答案 1 :(得分:3)

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

e.g。

$('.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/

答案 2 :(得分:2)

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

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

Working Demo

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

问题是您正在尝试访问/读取文本但不会将其写回。要将其写回来,您还需要替换文本。您可以JSFiddle完成此操作。

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