我有一个带有onclick属性的按钮,该属性指向函数test()
。
<button onclick="test()">Button 1</button>
<button onclick="test()">Button 2</button>
<button onclick="test()">Button 3</button>
功能测试():
function test()
{
var button_name = this.html;
console.log("Im button "+ button_name);
}
如何获取有关点击按钮的信息? 例如我怎么读这个HTML?
jsfiddle :https://jsfiddle.net/c2sc9j9e/
答案 0 :(得分:6)
将this
引用传递给函数,然后读取textContent
属性节点的文本内容。
HTML 的
<button onclick="test(this)">Button 1</button>
脚本
function test(elem){
var button_name = elem.textContent;
}
答案 1 :(得分:2)
四个选项:
将this
传递给该功能。
<button onclick="test(this)">Button 1</button>
然后在函数中使用该参数。
使用addEventListener
或jQuery&#39; on
连接处理程序,然后在处理程序中使用this
。
var buttons = document.querySelectorAll("selector-for-the-buttons");
Array.prototype.forEach.call(buttons, function(btn) {
btn.addEventListener("click", handler, false);
});
function handler() {
// Use `this` here
}
jQuery版本:
$("selector-for-the-buttons").on("click", function() {
// Use `this` here
});
在这些按钮所在的容器上连接一个处理程序,并使用事件对象的target
属性来确定单击了哪个(但请注意,如果使用{{1}中的其他元素你需要首先循环到button
。
button
jQuery版本,为您处理document.querySelector("selector-for-the-container").addEventListener("click", function(e) {
// Use `e.target` here
}, false);
中嵌套元素的可能性:
button
答案 2 :(得分:1)
function test(button)
{
var button_name = button.getAttribute('name');
console.log("Im button "+ button_name);
}
<button onclick="test(this)" name="button1">Button 1</button>
<button onclick="test(this)" name="button2">Button 2</button>
<button onclick="test(this)" name="button3">Button 3</button>
答案 3 :(得分:1)
如果你想使用Jquery,那么你可以在函数中调用$(this)对象。
答案 4 :(得分:1)
你必须将“this”传递给函数
<button onclick="test(this)">1</button>
<button onclick="test(this)">2</button>
<button onclick="test(this)">3</button>
<script>
function test(t)
{
console.log(t);
}
</script>
答案 5 :(得分:1)
以下是使用jquery的解决方案jsfiddle。
<button onclick="test(this)">1</button>
<button onclick="test(this)">2</button>
<button onclick="test(this)">3</button>
<script>
function test(button)
{
var button_name = $(button).html();
alert("Im button "+ button_name);
}
</script>
答案 6 :(得分:1)
只需为每个按钮添加id并将其传递给测试函数
<button onclick="test(this.id)" id="button1">1</button>
<button onclick="test(this.id)" id="button2">2</button>
<button onclick="test(this.id)" id="button3">3</button>
<script>
function test(id)
{
var button_name = id;
alert("Im button name is : "+ button_name);
console.log("Im button name is :"+ button_name);
}
</script>
答案 7 :(得分:0)
我在Vanilla JS中遇到了另一种非常简单的方法,因此我将其发布在这里以供参考:
function whoami () {
var caller = event.target;
alert("I'm " + caller.textContent);
}
<button onclick="whoami()">Button 1</button>
<button onclick="whoami()">Button 2</button>
<button onclick="whoami()">Button 3</button>
我不确定它是否支持浏览器,但它至少可以在基于Safari,Firefox和Blink的浏览器上工作。