0

当用户单击标签时,我想将我的类替换为旧的,我只想使用 .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

4 回答 4

3

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

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

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

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

文件:

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

于 2012-07-02T03:18:10.910 回答
2

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

 $('a').click(function(){
    var cls = $(this).attr('class').replace('me','old')
    $(this).removeClass('me').addClass(cls)
    })
})
于 2012-07-02T03:16:18.400 回答
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 链接

于 2012-07-02T03:15:39.340 回答
0
$('a').click(function(){
    $(this).replaceWith('<a href="#" class="old">click</a>');
});

我用http://codebins.com/codes/home/4ldqpco上的解决方案创建了一个 bin

于 2012-07-02T05:51:15.220 回答