我有一个按钮,我想在单击该按钮时使用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
}
答案 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)
您需要将调用者元素传递给函数...
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;
虽然正确的jQuery方式就是这样......
$('#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;
答案 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