获取点击按钮的属性
JavaScript - get attributes of clicked button
这个答案解释了如何获得被单击按钮的ID。
JavaScript - onClick获取被点击按钮的ID
但是,您还可以获得该按钮的其他属性吗?例如name
或 data-* attributes
?
工作小提琴。
可以,使用 getAttribute()
,例如:
element.getAttribute('attribute-name'); //return 'attribute-name' attribute
注意:最好传递当前点击元素this
的对象,然后获得您想要的属性:
<button name="X" data-other-attr='XX' onClick="reply_click(this)">Button</button>
JS:
function reply_click(clicked_object)
{
alert(clicked_object.getAttribute('name'));
alert(clicked_object.getAttribute('data-other-attr'));
}
你还能得到那个按钮的其他属性吗?
在click处理程序中,您可以访问事件数据,从而可以访问:
- 触发事件的DOM节点(
e.target
) - 事件绑定的DOM节点(
e.currentTarget
) - 所有其他事件数据(例如哪个鼠标按钮用于点击事件,事件类型等)
DOM节点引用具有用于访问数据的api,例如它们的属性
另外,事件绑定到的DOM节点默认情况下作为回调函数的调用上下文可用。这是DOM节点将被设置为this
变量的一种奇特方式:
document.querySelector('button').addEventListener('click', function () {
console.log(this);
}, false);
<button type="button">example</button>
当你在HTML中使用内联事件处理程序时(你应该避免),this
可以传递给任何你想调用的函数:
function click(btn) {
console.log(btn);
}
<button type="button" onclick="window.click(this);">example</button>
以下是您在问题中指出的示例代码的稍微修改。
<html>
<body>
<form>
<button id="1" name="test1" onClick="reply_click(1)">B1</button>
<button id="2" name="test2" onClick="reply_click(2)">B2</button>
<button id="3" name="test3" onClick="reply_click(3)">B3</button>
<script>
function reply_click(clicked_id)
{
//alert(clicked_id);
var temp = document.getElementById(clicked_id).getAttribute("name");
alert(temp);
}
</script>
</form>
</body>
</html>
可以。
在你引用的例子中:
<button id="1" onClick="reply_click(this.id)">B1</button>
您可以将this.id
替换为this.name
或this.dataset
,您将把这些属性传递给reply_click
函数,而不是ID。
您想要在按钮(button.addEventListener('click')
)上附加一个单击处理程序,然后像使用常规JavaScript对象一样使用点表表法访问其属性。
小提琴:https://jsfiddle.net/9vkrwxmx/
相关文章:
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 在jquerymobile中设置按钮css属性的动画
- 单击按钮时的窗口属性
- 如何使用按钮'的OnClientClick属性,以便在ASP.NET中运行一些多个JavaScript函数
- vue-js-单选按钮won't默认情况下使用v-model属性进行检查
- 我们可以设置属性'id'到不同的'按钮'通过使用javascript或jquery的循环
- 如何将按钮的数据属性设置为输入[type=text]中设置的任何值
- 单击TextArea'时,文本区域中的属性名称是什么;s上下箭头按钮
- 在单击onclick属性后的按钮时执行f:setPropertyActionListener
- JavaScript / jquery:如果选择了单选按钮并且数据属性符合条件,则添加类
- 当我关联runat=“server”属性时,JQuery UI 按钮集在单选按钮上不起作用
- 如何选择并单击没有 id 属性的按钮
- 使用Javascript从按钮获取自定义属性
- 单选按钮和复选框.防止更改值属性
- 无法向按钮添加属性
- socket.io:发射按钮's属性值
- 如何使用按钮的jsp点击事件将属性设置为struts-bean
- 在JavaScript NOT JQuery中的按钮上触发点击事件后访问childNode或同级属性
- 我可以't获取单选按钮上的onclick属性以执行javascript函数
- 数据表:未捕获类型错误:无法读取未定义的属性“按钮”