jquery中的.replace方法

时间:2012-07-02 03:13:14

标签: javascript jquery replace

我想在用户点击标签时将我改为旧版,我想只使用.replace函数。我的目的是学习如何替换方法。但是我做的功能不起作用。

<head>    
<script type="text/javascript" src="jquery-1.7.2.js"></script>  
<script type="text/javascript">
$(function(){
    $('a').click(function(){
        $(this).attr('class').replace('me','old')
    })
})  
</script>
</head>
<body>
<a href="#" class="me">click</a>
</body>

4 个答案:

答案 0 :(得分:3)

replace不是jQuery函数,它是string的函数。您可以阅读有关替换here的更多信息。要使用replace,可以将该属性作为字符串读取,替换该字符串的内容,然后再添加该属性。

如果你加载了jQuery,我不认为这是最好的方法。您可以使用设计用于执行这些操作的jQuery实用程序,如下所示:

 $(this).toggleClass('me old');

这将打开和关闭(切换)这两个类名。实际上它会从一个切换到另一个。

文档:

http://api.jquery.com/toggleClass/

答案 1 :(得分:2)

你正在获取类并且它不会影响类属性,你可以替换字符串然后将其设置为元素:

 $('a').click(function(){
    var cls = $(this).attr('class').replace('me','old')
    $(this).removeClass('me').addClass(cls)
    })
})

答案 2 :(得分:0)

请改为尝试:

<head>

<script type="text/javascript" src="jquery-1.7.2.js"></script>


<script type="text/javascript">


$(function(){


    $('a').click(function(){

        var theclass = $(this).attr('class');
        theclass = theclass.replace('me', 'old');
        $(this).attr('class', theclass);


        })


    })



</script>


</head>

<body>

<a href="#" class="me">click</a>

</body>

这应该可以解决问题。 JSFiddle Link

答案 3 :(得分:0)

$('a').click(function(){
    $(this).replaceWith('<a href="#" class="old">click</a>');
});

我使用http://codebins.com/codes/home/4ldqpco

上的解决方案创建了一个bin