为什么替换仅在第一行工作

时间:2018-07-20 15:16:12

标签: javascript replace

为什么jQuery替换仅在第一行工作?

var el = $('#X');
el.html(el.html().replace("&", "%26"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Line 1: <span id="X"><a href="http://www.www.com/test&test1"></a></span>
Line 2: <span id="X"><a href="http://www.www.com/test&test2"></a></span>

1 个答案:

答案 0 :(得分:-1)

您可以像下面那样使用text()代替html,它将起作用。

var el = $('#X');
el.html(el.text().replace("&", "%26"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span id="X">test & test1</span>

这是因为返回的html字符串已编码,因此在替换之前需要对其进行解码。

相关问题