我在这里添加每个 '. cmsCategories 的 div 到 item_array,但随后 .replace() 将不适用于 item_array 键。我怎样才能解决这个问题? (在此之后,我会将新内容写回到 div 中)。任何帮助都会很棒!
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>
最佳答案
1) 替换函数不会更改您传递的字符串(字符串是不可变的):它会返回一个新字符串。
做:
var newString = item_array[0].replace(...
或
item_array[0] = item_array[0].replace(...
2) 在此操作之后,您必须再次使用 $('someselector').html(item_array[0]);
你需要的完整代码是这样的
$("[class=' cmsCategories']").each(function(i, obj) {
var html = $(this).html();
html = html.replace ...
$(this).html(html);
});
关于javascript - 为什么 javascript .replace 不适用于此数组键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12497479/