admin管理员组文章数量:1355660
DEMO
Hi Am trying to remove the arrows from JS. but seems like replace is not working :-(
<a class="pr-page-prev">« Previous</a>
<a class="pr-page-next">Next »</a>
$('.pr-page-prev').text().replace(/«/, '')
$('.pr-page-next').text().replace(/»/, '')
DEMO
Hi Am trying to remove the arrows from JS. but seems like replace is not working :-(
<a class="pr-page-prev">« Previous</a>
<a class="pr-page-next">Next »</a>
$('.pr-page-prev').text().replace(/«/, '')
$('.pr-page-next').text().replace(/»/, '')
Share
Improve this question
asked Mar 17, 2015 at 9:33
DeveloperDeveloper
1,4373 gold badges23 silver badges48 bronze badges
2
-
3
There is no
«
in the text you are getting it's the actual symbol:«
, have you tried replacing that? Also you are doing nothing with the result: jsfiddle/peteng/t1rru99a/3 – Pete Commented Mar 17, 2015 at 9:35 - possible duplicate of jquery text().replace('','') not working and many others – JJJ Commented Mar 17, 2015 at 9:40
5 Answers
Reset to default 9You are replacing the text but not the content of the element.
When you say $('.pr-page-prev').text()
, it returns the text content on which you are calling replace which will return the replaced text but it is not set back to the element. So even if you have replaced the text it won't be applied to the element.
$('.pr-page-prev').text(function(i, text){return text.replace(/«/, '')})
$('.pr-page-next').text(function(i, text){return text.replace(/»/, '')})
Demo: Fiddle
That's because you are not doing anything with the results of the replace:
e.g.
$('.pr-page-prev').text($('.pr-page-prev').text().replace(/«/, ''));
Or using a function instead of the value:
$('.pr-page-prev').text(function(){ return $(this).text().replace(/«/, ''));
http://jsfiddle/TrueBlueAussie/t1rru99a/6/
Or better yet, bine them both into a single operation (the Regex shown will match either character):
$('.pr-page-prev,.pr-page-next').text(function () {
return $(this).text().replace(/[«»]/, '')
});
JSFiddle: http://jsfiddle/TrueBlueAussie/t1rru99a/9/
You can replace the value "«" with "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
You're replacing the string as a result but not changing what is displayed... what you need to do is to use the text()
method to get and to set the data, here's an example :
$('.pr-page-prev').text($('.pr-page-prev').text().replace("«", ''))
The problem is that you are trying to access/read the text but not write it back. To write it back you need to replace the text as well. You can do it by JSFiddle.
$('.pr-page-prev').text($('.pr-page-prev').text().replace("«", ''))
$('.pr-page-next').text($('.pr-page-next').text().replace("»", ''))
本文标签: javascriptjquery replace is not workingStack Overflow
版权声明:本文标题:javascript - jquery replace is not working - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744011209a2575599.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论