4

ここでは、各'のテキストを追加しています。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]);


});

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

5 に答える 5

6

1)置換関数は、渡す文字列を変更しません(文字列は不変です):新しい文字列を返します。

行う :

var newString = item_array[0].replace(...

また

item_array[0] = item_array[0].replace(...

2)この操作の後、DOMを再度変更する必要があります。$('someselector').html(item_array[0]);


必要な完全なコードは次のようなものです

$("[class=' cmsCategories']").each(function(i, obj) {
    var html = $(this).html();
    html = html.replace ...
    $(this).html(html);
});
于 2012-09-19T15:06:48.237 に答える
3

replaceメソッドは、元の値を変更しません。次のようなことをする必要があります。

item_array[0] = item_array[0]
     .replace("icon_dog", "<img src='img/icon_dog.png' alt='icon_dog' />"); 
于 2012-09-19T15:07:08.920 に答える
2

やったほうがいい

item_array[0] = 
    item_array[0].replace("icon_dog", "<img src='img/icon_dog.png' alt='icon_dog' />")
于 2012-09-19T15:08:00.497 に答える
2

あなたのreplaceステートメントは間違っていると思います。これを試して。

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

jsFiddle

于 2012-09-19T15:08:40.770 に答える
1

jsFiddleを更新しましたが、array=array.replaceを忘れました。

http://jsfiddle.net/QKHJJ/3/

于 2012-09-19T15:09:17.370 に答える