0

ユーザーがタグをクリックしたときにクラスmeを古いものに置き換えたいのですが、.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

4 に答える 4

3

replaceはjQuery関数ではなく、文字列の関数です。置換について詳しくは、こちらをご覧ください。replaceを使用するには、属性を文字列として読み取り、文字列の内容を置き換えてから、属性を追加し直します。

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でソリューションを使用してビンを作成しました

于 2012-07-02T05:51:15.220 に答える