2016-10-12 14 views
-1

javascriptのreplaceメソッドを使用して、一部のhtml文字列を置き換えます。私は.outerHTMLを取得することによってdom文字列を保存し、perticular単語を文字列に置き換えたいと思います。ここで私はJavaScriptを使用してフェッチ私のouterHTMLのDOMさ:JavaScript文字列を見つけて置き換えます。

<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> 

ここでは、私は、後にデータベースからフェッチ本当のキャプションを持つすべての$キャプションを交換したいです。しかし、これは動作していません。私はブラウザのコンソールでこの文字列を変数に格納しようとしましたが、一重引用符(関数のパラメータ内で使用可能)の後にエラーが発生しました。だから私はそれが認識されない文字列の値に問題があると思う。どのように私は文字列から$キャプションの値を置き換えることができますこの問題を解決することができます。

+1

あなたがしようとしていることは良い考えではありません。関数に '$ caption'変数を渡さないでください。代わりに、 'someMethod()'の中でそれを検索してください。おそらくAJAXがサーバから来ているのではないでしょうか? –

+0

@RoryMcCrossan someMethod()は、フルスクリーンで開いている画像にのみ使われる関数です。だから、私はすべてのタイトルとキャプションのような詳細と開いている画像のパラメータが必要です。しかし、画像をロードするときにクリエイターがサーバー側から取得するキャプションの更新をしたいとき。 –

+0

このDOMは文字列です。これはckeditorで保存されます。私はckeidtorを使ってこの値を保存しています。これはいくつかの内容の画像です。 –

答えて

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>

0

私はあなたがofcourseのあるべき属性セレクタ

$("[caption]").attr("caption", myCaptionText) 

を使用しますあなたはキャプション属性のすべてのインスタンスを上書きしないように、より具体的なビットを指定してください。

$(".specificParent [caption]").attr("caption", myCaptionText) 
関連する問題