2017-05-11 16 views
0

ボタンのクリック時にボタンのテキストを変更しようとしています。その結果、テキストが「コピー」から「コピー済み」に変わります。カスタムクリップボードの設定の一部として使用できます。ボタンのテキストを置き換えるJS

HTML::

<button id="copyButton2">Copy</button>

JS:

<script> 
jQuery(".copyButton2").click(function() { 
      jQuery(this).text(function(i, v){ 
       return v === 'Copy' ? 'Copied!' : 'Copy' 
      }) 
     }); 
</script> 

正しく動作していないと思われるここで私が使用しているコードがあります。

また、this solutionを変更してみました。これがうまくいかない明白な理由はありますか?

+1

IDに使用 '#' '.'クラス – guradio

答えて

4

copyButton2を要素のidとして設定しましたが、クラスセレクタを使用しています。セレクタの先頭に#という接頭辞を付ける必要があります。.

また、jQueryコードの実行場所によっては、document.readyハンドラも含める必要があります。あなたは閉じるボタンのIDを使用していたとして、代わりにクラスセレクタのIDセレクタ( "#のcopyButton2")を使用してください

jQuery(function($) { 
 
    $("#copyButton2").click(function() { 
 
    $(this).text(function(i, v) { 
 
     return v === 'Copy' ? 'Copied!' : 'Copy' 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="copyButton2">Copy</button>

+0

のためにこの質問は' typo'の近くでなければなりません。 –

+0

セレクタのタイプミスは唯一の問題ではないかもしれませんが、私は答えでdocument.readyハンドラの欠如も要因かもしれないと言っています –

+0

申し訳ありません、+1の代わりに:) –

0

:これを試してみてください。

0

ここに私たちがいる間、javascriptの解決策があります。

<script> 
    var testDiv = document.getElementById('test'); 

    testDiv.onclick = function(){ 
    testDiv.innerHTML = "Copied!" 
    }; 
</script> 
+0

これは全く同じではありません。 OPsオリジナルは、連続するクリックの値をトグルします。これはそれを 'Copied! 'に設定します。 –

+0

それを指摘してくれてありがとう。 –

関連する問題