1

押されたときに値が変わるボタンを作成しようとしています。

$("button").click( function() {
    valor = this.html();
    retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
    this.html(retorno);
});

次のメッセージが表示されます。

キャッチされていない TypeError: オブジェクト # にはメソッド 'html' がありません

助けていただければ幸いです。

4

7 に答える 7

5

thisjQuery オブジェクトではなく、HTMLElementNode オブジェクトです。

valor = jQuery(this).html();
于 2013-03-06T16:22:53.840 に答える
2

thisHTMLElementNode (ウィンドウ) オブジェクトを参照し、jquery オブジェクトではなく、html は jquery メソッドであるため、機能しません。

したがって、それを jquery オブジェクトにするには、ラップする必要があります$

 $("button").click( function() {
     valor = $(this).html();
     retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
     $(this).html(retorno);
 });
于 2013-03-06T16:23:53.610 に答える
1

これを使って :

valor = jQuery(this).html();
于 2013-03-06T16:25:56.863 に答える
1

これを試して

valor = $(this).html();
于 2013-03-06T16:22:47.387 に答える
1

これを使って...

$("button").on('click', function() {
    valor = $(this).html();
    retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
    $(this).html(retorno);
});

この例を参照してください

于 2013-03-06T16:23:26.067 に答える
1

thisvalor = this.innerHTMLHTMLElementNode を参照するため、jQuery 呼び出しを実行して回避できます。

于 2013-03-06T16:24:07.047 に答える
1
$("button").click( function() {
     valor = $(this).html();
     retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
     $(this).html(retorno);
 });
于 2013-03-06T16:25:14.140 に答える