我試圖創建一個按鈕,當它按下時更改其值。按下按鈕時更改名稱
$("button").click(function() {
valor = this.html();
retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
this.html(retorno);
});
我有這樣的信息:
遺漏的類型錯誤:對象#有沒有方法 'HTML'
我感謝所有幫助。
我試圖創建一個按鈕,當它按下時更改其值。按下按鈕時更改名稱
$("button").click(function() {
valor = this.html();
retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
this.html(retorno);
});
我有這樣的信息:
遺漏的類型錯誤:對象#有沒有方法 'HTML'
我感謝所有幫助。
嘗試此
valor = $(this).html();
this
是HTMLElementNode對象,而不是jQuery對象。
valor = jQuery(this).html();
爲什麼不'this.innerHTML'? – 2013-03-06 16:24:29
非常感謝! =) – 2013-03-06 16:28:54
使用此...
$("button").on('click', function() {
valor = $(this).html();
retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
$(this).html(retorno);
});
參見本實施例中jsFiddle
this
指HTMLElementNode(窗口)對象,並且不是jquery對象和爲html是一個jquery方法它將無法工作。
所以使它你需要用它周圍的$
一個jQuery對象:
$("button").click(function() {
valor = $(this).html();
retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
$(this).html(retorno);
});
this
將把一個HTMLElementNode,所以你可以做valor = this.innerHTML
,避免了jQuery調用。
$("button").click(function() {
valor = $(this).html();
retorno = (valor == 'Exibir') ? 'Ocultar' : 'Exibir';
$(this).html(retorno);
});
使用此:
valor = jQuery(this).html();
這是一個很大的全局變量... – Quentin 2013-03-06 16:23:13
至於昆汀提到 - 你被你的函數中沒有聲明的變量爲本地污染全局空間。在這些錯誤之前添加「var」使其成爲本地。 – 2013-03-06 16:24:59
謝謝大家對全局的解釋。我不知道。 – 2013-03-07 16:37:25