JavaScript字符串替换不起作用

时间:2012-04-24 11:58:13

标签: javascript

  

可能重复:
  javascript replace function not working

这是我的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不是函数

在上面的代码片段执行时随时获取此错误。 为什么这个字符串替换不起作用?!?!提前致谢!

5 个答案:

答案 0 :(得分:11)

liHTML = liHTML.replace("IMG_TITLE", imgTitle);

答案 1 :(得分:1)

您需要在每一行设置新值。

liHTML = liHTML.replace("IMG_SRC", imgSrc);

答案 2 :(得分: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);

答案 3 :(得分: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

答案 4 :(得分:0)

你有几个问题。首先你没有设置值。替换只是生成新值。第二个问题是,在你的情况下你应该使用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);