Mar*_*tin 3 html jquery replace
如何用html替换replace()
?
<div>
<a href="http://www.google.com">google.com</a>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
var e = $("div"),
fix = e.html().replace("google.com", "duckduckgo.com");
e.html(fix);
Run Code Online (Sandbox Code Playgroud)
我猜html()的工作方式不一样text()
吗?
Ori*_*iol 12
问题是.replace
只能取代第一次出现.如果要替换所有出现的事件,则必须使用带有g
(全局)标志的正则表达式:
var e = $("div"),
fix = e.html().replace(/google\.com/g, "duckduckgo.com");
e.html(fix);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<a href="http://www.google.com">google.com</a>
</div>
Run Code Online (Sandbox Code Playgroud)
记住,你必须逃避特殊字符,例如.
.如果您愿意,可以使用
String.prototype.replaceAll = function(s1, s2) {
return this.replace(
new RegExp( s1.replace(/[.^$*+?()[{\|]/g, '\\$&'), 'g' ),
s2
);
};
var e = $("div"),
fix = e.html().replaceAll('google.com', "duckduckgo.com");
e.html(fix);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div>
<a href="http://www.google.com">google.com</a>
</div>
Run Code Online (Sandbox Code Playgroud)