将onclick控件发送到javascript函数

将onclick控件发送到javascript函数,javascript,function,parameters,attributes,Javascript,Function,Parameters,Attributes,我试图从onclick事件将属性及其值传递给javascript函数,但它们返回时未定义 <script type="text/javascript"> function addParameters(control) { alert(control._userid); alert(control._flag); } 功能参数(控制){ 警报(控件。\u用户ID); 警报(控制标志); } 按钮 您不能像那样直接访问这些自定义属性。您需要通过

我试图从onclick事件将属性及其值传递给javascript函数,但它们返回时未定义

<script type="text/javascript">

function addParameters(control) {
         alert(control._userid);
        alert(control._flag);
}

功能参数(控制){
警报(控件。\u用户ID);
警报(控制标志);
}

按钮

您不能像那样直接访问这些自定义属性。您需要通过元素的
属性
属性访问它们。试试这个:

按钮
功能参数(控制){
警报(control.attributes.\u userid);
警报(控制.属性._标志);
}

我建议您将id添加到button元素,然后使用该id绑定click事件侦听器:

// Html
<button id="btn1" _userid="1" flag="true"> </button>

//Javascript
document.getElementById("btn1").addEventListener('click', click);

function click(event){
    var attrs = event.target.attributes;
    var userid = attrs._userid;
    var flag = attrs._flag;
}
//Html
//Javascript
document.getElementById(“btn1”).addEventListener('click',click);
功能点击(事件){
var attrs=event.target.attributes;
var userid=attrs.\u userid;
var标志=属性标志;
}
我建议在内联onclick javascript事件上使用这种方法,因为这样可以将html与javascript分开。html对视图负责并表示数据。
javascript负责与视图和功能的交互。通过这种方式,数据和功能的表示是分开的和不同的。

可能的重复不应使用HTML中不存在的任意属性。改用自定义数据属性。非常感谢你们,我花了半天时间试图弄明白为什么它不能在chrome上工作。你太棒了,再次感谢你。
// Html
<button id="btn1" _userid="1" flag="true"> </button>

//Javascript
document.getElementById("btn1").addEventListener('click', click);

function click(event){
    var attrs = event.target.attributes;
    var userid = attrs._userid;
    var flag = attrs._flag;
}