我想用javascript的replace方法替换一些html字符串。我通过获取.outerHTML存储了一个dom字符串,并希望用字符串替换一个特定字。这是我使用javascript获取的outerHTML dom:
<figure class="image" onclick="someMethod('btbjwkjpuynyzdijsvf5.jpg', 'Title','$caption', 'image','other params')">
<img id="45435435345" src="btbjwkjpuynyzdijsvf5.jpg" caption="$caption" title="title">
<figcaption>$caption</figcaption>
</figure>
这里想要用我之后从数据库中获取的真实标题替换所有$ caption。但这不起作用。我尝试在浏览器控制台上将此字符串存储在变量上,但它在单引号后出现错误(在函数参数中可用)。所以我认为它存在无法识别的字符串值的问题。如何解决此问题,以便我可以从字符串中替换$ caption值。
答案 0 :(得分:1)
这不是一个好习惯,而是可以使用javascript模板引擎
$("#myDiv").html($("#myDiv").html().replace(/\$caption/g,'My caption'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myDiv">
<figure class="image" onclick="someMethod('btbjwkjpuynyzdijsvf5.jpg', 'Title','$caption', 'image','other params')">
<img id="45435435345" src="btbjwkjpuynyzdijsvf5.jpg" caption="$caption" title="title">
<figcaption>$caption</figcaption>
</figure>
</div>
答案 1 :(得分:0)
我会使用属性选择器
$("[caption]").attr("caption", myCaptionText)
你应该更具体一点,所以你不要过度编写标题属性的每个实例
$(".specificParent [caption]").attr("caption", myCaptionText)