好的,所以我试图制作某种num_pad
,当我click
buttons(0-9)
之一时,我的displayBox
显示未定义的值,而不是号码已选中。
<head>
<script language="javascript" type="text/javascript">
function getValue() {
var display = document.getElementById('displayBox').value += document.getElementsByTagName('span').innerHTML;
}
</script>
</head>
<body>
<div class="display">
<input type="text" id="displayBox"><br />
</div>
<div id="numbers" style="line-height: 55px;">
<span onclick="getValue(this)">1</span>
<span onclick="getValue(this)">2</span>
<span onclick="getValue(this)">3</span>
</div>
</body>
答案 0 :(得分:0)
document.getElementsByTagName()
将返回一个匹配元素数组,您必须使用索引访问它们。
试
function getValue(elm) { //elm referes to the <span> which is clicked
var display = document.getElementById('displayBox').value += elm.innerHTML;
}
代替。
答案 1 :(得分:0)
看看这段代码 - &gt; Demo
您将元素传递给您的函数 - &gt; getValue(this)
,但你的getValue函数function getValue()
没有收到任何参数。
将其更改为getValue(el)
&lt; - el
是要传递的元素。
function getValue(el) {
var display = document.getElementById('displayBox').value = el.innerHTML;
}
此外,document.getElementsByTagName(tagname)
会返回HTML Collection
找到的元素。要访问任何找到的元素,您必须使用索引 - &gt; document.getElementsByTagName(tagname)[0]
&lt; - [0]
是HTML Collection
的第一个元素。 Source