Javascript查找并替换dom字符串

时间:2016-10-12 07:46:01

标签: javascript jquery

我想用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值。

2 个答案:

答案 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)