2013-09-28 68 views
0

我不想將值傳遞給函數,我希望它找到它本身的值。JAVASCRIPT + HTML按鈕值與getElements

<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循環,並附加一個處理程序。我不確定從哪裏開始。

回答

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> 
+0

我對它進行了更多修改。 (元素)

無論哪種方式,這兩種方法的工作。謝謝! – Steven

1

比較:

getElementsByTagName("button"); 

<input> 

你得到了錯誤的元素類型。


如果我想點擊一個按鈕,顯示按鈕的值轉換成可以說一個div;我不想用onclick編碼每個按鈕(傳遞一個參數)。

使用addEventListener。您可以識別與event.target

例如點擊的元素

addEventListener('click', function (evt) { 
    if (evt.target.type == "button") { 
     alert(evt.target.value); 
    } 
}); 
+0

太好了!感謝分享。 – Steven