如何使用javascript在html代码块中用另一个字符串(url)替换标记(| mybackground |)?
我在wordpress网站的一个区块工作。我有一个大型的HTML电子邮件模板。所以我希望得到它,将标记更改为URL,然后将其作为emailcontent发送给用户。它必须改变,因为每个用户都会在其中获得他的个性化图像,并且它们都有不同的名称。但我想使用1个基本模板(实际上我有一个完整的html emailtemplate包含更多代码,但我只是在这里发布了一个片段。)
<div id="emailcontent">
<table>
<tr>
<td style="background-image: url('|mybackground|');">
...some content...
</td>
</tr>
</table>
</div>
答案 0 :(得分:0)
提供td
个ID并使用document.getElementById("yourId").setAttribute("background", "[www.yourUrl.com]")
。
答案 1 :(得分:0)
您不会替换HTML中的字符串。这是非常糟糕的做法。
VML是no longer supported by IE10+所以你可以删除代码(它甚至不完整,因为你甚至没有v:textbox start) - 我修复了它但你仍然可以删除它:
<!--[if gte mso 9]>
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true">
<v:fill type="frame" src="|mybackground|" position="0,0" />
</v:rect>
<![endif]-->
而是做这样的事情。
$(function() {
var card = "X", // where to get card from?
$td = $("#emailcontent").find("td[background='|mybackground|']"),
img = $("#"+card).attr('src');
$td.attr("background",img);
$td.attr("style",$td.attr("style").replace("|mybackground|",img));
});
#X { display:none }
td { height:200px; width:200px }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="emailcontent">
<table>
<tr>
<td background="|mybackground|" style="background-image: url('|mybackground|');">Here is an elephant</td>
</tr>
</table>
<hr/>
<img id="X" src="http://d5prcm06amy2t.cloudfront.net/mobile/mobile-hank04-shadow.png"/>
</div>
答案 2 :(得分:0)
来自MDN:
要执行全局搜索和替换,请在其中包含g开关 正则表达式或如果第一个参数是字符串,则包含 g在flags参数中。
所以,即使这是脏东西,也应该这样:
var find = '\\|mybackground\\|';
var re = new RegExp(find, 'g');
document.body.innerHTML = document.body.innerHTML.replace(re, $("#card").attr('src'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="emailcontent">
<table>
<tr>
<td background="|mybackground|" style="background-image: url('|mybackground|');">
</td>
</tr>
</table>
</div>
<img id="card" src="mysource">