Javascript替换没有任何影响

时间:2011-10-10 21:22:59

标签: javascript jquery

这是jQuery:

<script type="text/javascript">
    $(document).ready(function(){
        var relName;
        $('.child').each(function() {
            relName = $(this).attr('rel');
            relName.replace('&','');
            $(this).attr('rel', relName);
            $(this).appendTo('#' + $(this).attr('rel'));
        });
    }); 
</script>

使用这个相关的HTML:

<div rel="MadDogs&EnglishmenHandpaintedfigurines" id="Figurines" class="category section child">
     <h3 class="categoryTitle">Figurines</h3>               
</div>

但由于某种原因,替换没有任何效果!

4 个答案:

答案 0 :(得分:8)

replace返回包含替换数据的字符串。所以你需要指回你的变量。

relName = relName.replace('&','');

答案 1 :(得分:3)

replace()不会更改原始字符串,而是返回一个新字符串。

答案 2 :(得分:2)

它没有更新,因为你没有将结果分配给任何东西。

请改为尝试:

$(this).attr('rel', relName.replace('&',''));

答案 3 :(得分:2)

使用基本上每个jQuery方法的{s> attrcallback version来编写它是一种巧妙的方法:

$(document).ready(function() {
    $('.child').attr('rel', function(i, relName) {
        $(this).appendTo('#' + relName);
        return relName.replace('&','');
    });
});