为什么javascript .replace不能在这个数组键上工作?

Joe*_*Joe 4 javascript jquery

我在这里添加每个'的文字.cmsCategories的div为item_array,但是.replace()将无法在item_array键上运行.我怎样才能解决这个问题?(在此之后我将把新内容写回div).任何帮助都是极好的!

http://jsfiddle.net/QKHJJ/1/

使用Javascript:

$(document).ready(function() {

var item_array=new Array();

$("[class=' cmsCategories']").each(function(i, obj) {
item_array.push(obj.innerHTML);
});

item_array[0].replace("icon_dog", "<img src='img/icon_dog.png' alt='icon_dog' />"); 
item_array[0].replace("icon_cat", "<img src='img/icon_cat.png' alt='icon_cat' />"); 

alert(item_array[0]);


});
Run Code Online (Sandbox Code Playgroud)

HTML:

<ul class="cmsSmartListResults">
  <li>
    <div class=" cmsCategories">icon_cat, apple, icon_dog, pear, banana</div>
    <a href="" class=" cmsPageLink"></a>
    <div class=" cmsDescription"></div>
    <div class=" cmsFileSize"></div>
    <a class=" cmsMoreLink"></a>
</li>
  <li>
<div class=" cmsCategories">apple, icon_dog</div>
<a href="" class=" cmsPageLink"></a>
<div class=" cmsDescription"></div>
<div class=" cmsFileSize"></div>
<a class=" cmsMoreLink"></a>
</li>
  <li>
    <div class=" cmsCategories">pear, banana</div>
    <a href="" class=" cmsPageLink"></a>
    <div class=" cmsDescription"></div>
    <div class=" cmsFileSize"></div>
    <a class=" cmsMoreLink"></a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 6

1)替换函数不会更改您传递的字符串(字符串是不可变的):它返回一个新字符串.

做:

var newString = item_array[0].replace(...
Run Code Online (Sandbox Code Playgroud)

要么

item_array[0] = item_array[0].replace(...
Run Code Online (Sandbox Code Playgroud)

2)执行此操作后,必须再次更改DOM$('someselector').html(item_array[0]);


您需要的完整代码是类似的

$("[class=' cmsCategories']").each(function(i, obj) {
    var html = $(this).html();
    html = html.replace ...
    $(this).html(html);
});
Run Code Online (Sandbox Code Playgroud)