我有这个:
var $string = 'hello,world';
$(".content").text(function(i, $string) {
return $string.replace(/,/g, ", ");
});
旨在在空格后添加逗号。我究竟做错了什么?问题可能是我在函数中使用变量。入门级的东西。
答案 0 :(得分:2)
不要在匿名函数中包含参数,因为这会覆盖你的$ string值...正如@RoryMcCrossan所建议你不需要函数
var $string = 'hello,world';
$(".content").text($string.replace(/,/g, ", "));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="content"></div>
答案 1 :(得分:1)
为了您的理解,您的代码目前的工作方式如下:
var $anotherstring = 'hello,world';
$(".content").text(function(i, $string) {
return $string.replace(/,/g, ", ");
});
(因为函数的内部变量参数与第一个不同,隐藏您使用相同名称定义的第一个$string
如果元素的当前文本值为“hello,world”
,则text
使用内部function(i, $string)
的方式将起作用
$(".content").text('hello,world'); // just to set the value of the .content element for the example, you can ignore this if this already the case
$(".content").text(function(i, $string) {
return $string.replace(/,/g, ", ");
});
因此,如果您想转换现有内容,上述代码将有效。
如果您只想使用另一个变量的值,而不是.content元素的旧内容,则可以执行以下操作:
var $string = 'hello,world';
$(".content").text($string.replace(/,/g, ", "))
答案 2 :(得分:0)
试试这个方法
let $str = 'hello,world';
$(".content").text($str.replace(/,[s]*/g, ", "));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="content"></div>