尝试将span标记之间的值读入输入框。获取未定义onclick的值

时间:2014-06-17 11:26:06

标签: javascript html

好的,所以我试图制作某种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>

2 个答案:

答案 0 :(得分:0)

document.getElementsByTagName()

将返回一个匹配元素数组,您必须使用索引访问它们。

function getValue(elm) { //elm referes to the <span> which is clicked
 var display = document.getElementById('displayBox').value += elm.innerHTML;
}

代替。

JSfiddle

答案 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