jquery替换不起作用

jquery replace is not working

本文关键字:不起作用 替换 jquery      更新时间:2023-09-26

演示

嗨,我正试图删除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;/, '')

您要替换的是文本,而不是元素的内容。

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

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

演示:Fiddle

这是因为您没有对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/

或者更好的是,将两者合并为一个操作(显示的Regex将与任一字符匹配):

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

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

您可以将值"«"替换为"空格"。

$(".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("»", ''))