0

我不想将值传递给函数,我希望它自己找到值。

<script type="text/javascript">
function add(buttonNum)
{
    var elements = document.getElementsByTagName("button");
    alert(document.myform.elements[buttonNum].value);
}
</script>


<form name="myform">
<input type="button" value="q" onclick="add(0)"/>
<input type="button" value="w" onclick="add(1)"/>
<input type="button" value="e" onclick="add(2)"/>
<input type="button" value="r" onclick="add(3)"/>
<input type="button" value="t" onclick="add(4)"/>
<input type="button" value="y" onclick="add(5)"/>
</form>

如果我想单击一个按钮并将按钮的值显示到让我们说一个 div;我不想用 onclick(传递参数)对每个按钮进行编码。

我需要采取什么方法?有些东西告诉我,我需要获取长度、运行 for 循环并附加一个处理程序。我只是不确定从哪里开始。

4

2 回答 2

1

相比:

getElementsByTagName("button");

<input>

您得到了错误的元素类型。


如果我想单击一个按钮并将按钮的值显示到让我们说一个 div;我不想用 onclick(传递参数)对每个按钮进行编码。

使用addEventListener. 您可以识别单击的元素event.target

例如

addEventListener('click', function (evt) {
    if (evt.target.type == "button") {
        alert(evt.target.value);
    }
});
于 2013-09-28T19:38:00.993 回答
1

只需作为参数传递this,以便您可以访问元素的所有属性,但这里只有值:

<script type="text/javascript">
function add(elem)
{

    alert(elem.value);
}
</script>


<form name="myform">
<input type="button" value="q" onclick="add(this)"/>
<input type="button" value="w" onclick="add(this)"/>
<input type="button" value="e" onclick="add(this)"/>
<input type="button" value="r" onclick="add(this)"/>
<input type="button" value="t" onclick="add(this)"/>
<input type="button" value="y" onclick="add(this)"/>
</form>
于 2013-09-28T19:39:58.917 回答