jquery - jQuery从ajax加载的内容替换字符串
问题描述
我正在尝试用另一个字符串替换一个字符串的所有实例。这是我到目前为止所拥有的:
我通过ajax加载模板html文件,这是内容:
<div style="background-image:url({URL}/photo.png)">
<div>
<p>
<h1>
<a href="{URL}">link 1</a>
</h1>
</p>
<a href="{URL}">link 2</a>
</div>
</div>
所以基本上我需要用实际的 url 替换 {URL} 的所有实例。
我尝试过这样的事情:
$.get("template.html")
.done(function(data) {
data.replace("/{URL}/g", "http://example.com");
});
或者:
$.get("template.html")
.done(function(data) {
$(data).html($(data).html().replace("{URL}", "http://example.com"));
});
但它们都不起作用。
解决方案
使用全局替换data.replace("/{URL}/g", "http://example.com");
的正确语法不是正确的语法是:data.replace(/{URL}/g, "http://example.com");
我尝试了下面的代码,它按预期工作:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$().ready(function () {
$.get("template.html", )
.done(function (data) {
data = data.replace(/{URL}/g, "http://yourdomain.com");
$("#content").html(data);
});
});
</script>
</head>
<body>
<div id="content"></div>
</body>
</html>
请记住,该data.replace()
函数不会更改data
对象的实际内容,因此我编写了data = data.replace(/{URL}/g, "http://yourdomain.com");
然后我将修改后的内容插入到div
标签中。最后,在您的template.html
文件中,第一行应该是这样的:<div style="background-image:url('{URL}/photo.png)'">
因为 url() 需要一个字符串!
推荐阅读
- vba - 下面的 StrComp 代码有什么问题
- javascript - 例外与未兑现承诺的区别?
- node.js - Nodemailer 不在 lambda 函数中发送电子邮件
- javascript - 是否可以为 jshint 配置文件( .jshintrc )指定全局位置?
- php - 从单独的文件中读取 SQL 时,循环遍历 PDO->exec() 语句时出错
- quarkus - Micrometer StackdriverMeterRegistry 只向 GCP Monitoring 发布自定义指标,而不是自动检测指标?
- html - 有 3 个相似名称时不能使用 CSS 类
- python - 计算数据框列中列表项的出现次数,按另一列分组
- html - 如何为重复函数合并 Jquery 选择器?
- docker - 使用 deps.edn 在容器中安装依赖项