使用$(this)和jQuery访问内部文本

时间:2015-07-21 21:03:28

标签: javascript jquery this

我有一个按钮,我想在单击该按钮时使用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 个答案:

答案 0 :(得分:3)

传递'null' is not an object (evaluating 'c.length')

html:

this

javascript:

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

否则,function getButtonText(self) { console.log("this text = " + $(self).text()); //not working } 将是this对象

答案 1 :(得分:3)

您需要将调用者元素传递给函数...

&#13;
&#13;
function getButtonText(element) {
    var $this = $(element);
    console.log("this text = " + $this.text());
}
&#13;
<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>
&#13;
&#13;
&#13;

虽然正确的jQuery方式就是这样......

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

<button id="testID">Button Text</button>
&#13;
&#13;
&#13;

答案 2 :(得分: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