3

重複の可能性:
JavaScript の置換機能が機能しない

これが私のJSコードです:

var imgTitle = "fizz";
var imgTitle2 = "fizz";
var imgInfo = "buzz";
var imgSrc = "foo";
var liHTML = "<li class='imgThumbLi ui-draggable' title='IMG_TITLE'><img class='image' src='IMG_SRC' title='IMG_TITLE'/><div class='imageInfo'><p class='detailTitle'>IMG_INFO</p></div></li>";

// Search and replace all dummy values.
liHTML.replace("IMG_TITLE", imgTitle);
liHTML.replace("IMG_TITLE2", imgTitle2);
liHTML.replace("IMG_SRC", imgSrc);
liHTML.replace("IMG_INFO", imgInfo);

alert(liHTML);

これを印刷用に入手する:

 <li class='imgThumbLi ui-draggable' title='IMG_TITLE'><img class='image' src='IMG_SRC' title='IMG_TITLE'/><div class='imageInfo'><p class='detailTitle'>IMG_INFO</p></div></li>

(文字列置換呼び出しの前と同じ)。Firebug では、次のようなエラーが表示されます。

c.replace は関数ではありません

上記のコード スニペットが実行されるたびに、このエラーが発生します。この文字列置換が機能しないのはなぜですか?!?! 前もって感謝します!

4

5 に答える 5

11

試す

liHTML = liHTML.replace("IMG_TITLE", imgTitle);
于 2012-04-24T12:02:08.223 に答える
1

すべての行に新しい値を設定する必要があります。

liHTML = liHTML.replace("IMG_SRC", imgSrc);
于 2012-04-24T12:02:21.470 に答える
1

置き換えられた値では何もしていません。試す:

var imgTitle = "fizz";
var imgTitle2 = "fizz";
var imgInfo = "buzz";
var imgSrc = "foo";
var liHTML = "<li class='imgThumbLi ui-draggable' title='IMG_TITLE'><img class='image' src='IMG_SRC' title='IMG_TITLE'/><div class='imageInfo'><p class='detailTitle'>IMG_INFO</p></div></li>";

// Search and replace all dummy values.
liHTML = liHTML.replace("IMG_TITLE", imgTitle);
liHTML = liHTML.replace("IMG_TITLE2", imgTitle2);
liHTML = liHTML.replace("IMG_SRC", imgSrc);
liHTML = liHTML.replace("IMG_INFO", imgInfo);

alert(liHTML);
于 2012-04-24T12:03:18.753 に答える
0

結果を変数 liHTML に保存する必要があります。

liHTML = liHTML.replace("IMG_TITLE", imgTitle);
liHTML = liHTML.replace("IMG_TITLE2", imgTitle2);
liHTML = liHTML.replace("IMG_SRC", imgSrc);
liHTML = liHTML.replace("IMG_INFO", imgInfo);

// 編集少し遅くして :D

于 2012-04-24T12:05:03.693 に答える
0

そこにはいくつかの問題があります。まず、値を設定しません。置換は新しい価値を生み出すだけです。2番目の問題は、あなたの場合、replaceの代わりにreplace-allを使用する必要があることです。

Replace は、最初のインスタンスのみを置き換えます。

// Scope should have one var. Combine those vars.
var imgTitle = "fizz",
    imgTitle2 = "fizz",
    imgInfo = "buzz",
    imgSrc = "foo",
    liHTML = "<li class='imgThumbLi ui-draggable' title='IMG_TITLE'><img class='image' src='IMG_SRC' title='IMG_TITLE'/><div class='imageInfo'><p class='detailTitle'>IMG_INFO</p></div></li>";

// Search and replace all dummy values.
liHTML = liHTML.replace(new RegExp("IMG_TITLE", 'g'), imgTitle);
liHTML = liHTML.replace(new RegExp("IMG_TITLE2", 'g'), imgTitle2);
liHTML = liHTML.replace(new RegExp("IMG_SRC", 'g'), imgSrc);
liHTML = liHTML.replace(new RegExp("IMG_INFO", 'g'), imgInfo);

alert(liHTML);
于 2012-04-24T12:06:02.307 に答える