2015-07-21 17 views
0

我有一個按鈕,當單擊該按鈕時,我想使用jQuery記錄內部文本。我知道如何使用id來獲取buttton的文本($("#testID").text()),但這不適合我。我想使用$(this)關鍵字而不是id,但我不知道該怎麼做。

的HTML:

<button id="testID" onclick="getButtonText()">Button Text</button> 

的JavaScript:

function getButtonText() { 
    console.log("this text = " + $(this).text()); //not working 
} 

回答

3

通在this

的HTML:

<button id="testID" onclick="getButtonText(this)">Button Text</button> 

的JavaScript:

function getButtonText(self) { 
    console.log("this text = " + $(self).text()); //not working 
} 

否則,this將是window對象

+0

這麼簡單,謝謝!你能簡要解釋爲什麼我的解決方案不起作用嗎? –

+0

@TyRoderick,我答案中的最後一句解釋了原因。當你進入回調處理程序並且'this'沒有像Jacob Krall的註釋那樣綁定時,它將默認爲'window'對象 – AmmarCSE

+0

@AmmarCSE ok完美,再次感謝 –

3

您需要主叫元素傳遞給函數...

function getButtonText(element) { 
 
    var $this = $(element); 
 
    console.log("this text = " + $this.text()); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<button id="testID" onclick="getButtonText(this)">Button Text</button>

雖然這樣做會是這樣的適當jQuery的方法...

$('#testID').on('click',function() { 
 
    console.log("this text = " + $(this).text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<button id="testID">Button Text</button>

0

你可以給它一個類上的按鈕,然後當一個類被點擊,它將確定DOM,即$(this)。例如:

在HTML文件中: <button id="testID" class="test-btn">Button Text</button>

在腳本文件:

$(document).ready(function() {
$(".test-btn").click(function(){ $("#message").text("The Text is: " + $(this).text()); }); });

見我的Plunker例如:http://plnkr.co/edit/e94QraQfCOzGlkirvTJj?p=preview