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

// EDIT Ups 有点慢 :D

于 2012-04-24T12:05:03.693 回答
0

你有几个问题。首先你没有设置值。替换只是产生新的价值。第二个问题是,在您的情况下,您可能应该使用 replace-all 而不是 replace。

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