Javascript 当我在div中clic时,如何在代码中显示跨距的内容?

Javascript 当我在div中clic时,如何在代码中显示跨距的内容?,javascript,Javascript,我正在试着做一个计算器。我有不同的代码,但我正在努力做一个更好的选择 函数计算() { 对于(var i=0;i,这里有一种方法可以通过向文档添加eventlistener来实现。 然后我们只需从点击的目标获取信息。 (在本例中,尚未完成所有功能) 非常感谢!命令eventlistener在代码中比for循环更有效吗?另外,您知道为什么第一个代码不起作用吗?是的,因为您正在添加eventlistener,所以您只订阅事件“click”。这意味着,在触发事件之前不会运行任何代码。一旦您单击某个位

我正在试着做一个计算器。我有不同的代码,但我正在努力做一个更好的选择

函数计算()
{

对于(var i=0;i,这里有一种方法可以通过向文档添加eventlistener来实现。 然后我们只需从点击的目标获取信息。 (在本例中,尚未完成所有功能)


非常感谢!命令eventlistener在代码中比for循环更有效吗?另外,您知道为什么第一个代码不起作用吗?是的,因为您正在添加eventlistener,所以您只订阅事件“click”。这意味着,在触发事件之前不会运行任何代码。一旦您单击某个位置,我们可以获取单击的目标,并获取其内部html。您上面的代码无法工作,因为您正在尝试获取:
x.getElementsByTagName(“span”)
其中x是另一个div。我的上一个注释是错误的。您上面的代码不起作用,因为您在头部设置了javascript,并且x是在主体呈现到DOM之前定义的。请尝试在JS fiddle中将设置更改为左上角(将其更改为-in body)哦,太好了!再次感谢你。如果我问另一个问题,很抱歉,但是如果HTML文档有多个ID,这是一个问题吗?这就是为什么我试图通过span标记获取元素,以避免使用太多的ID标记。整个HTML可以有多个ID。ID应该是唯一的。如果你想要重复,可以使用类。不要这样做“如果您觉得我的解决方案有用,请不要忘记升级:)使用Salmin Skenderovic解决方案更新代码:
function calc()
{
        for(var i = 0; i <= y.length; i++)
    {
        key+=y[i].innerHTML;
        document.getElementById("display").innerHTML=key;

    }
}
//get number key values
var key = "";

document.addEventListener("click", function(e){

  switch (e.target.id) {
    case 'eq':
      calculate(key);
      return;

    case 'mult':
      key += "*";
      break;

    case 'dvd':
      key += "/";
      break;

    default:
    key += e.target.innerHTML;
    break;
  }
  document.getElementById('display').innerHTML = key;
});

//calculate result
function calculate(equation) {
    var answer = eval(equation);
    key = document.getElementById('display').innerHTML = answer;
}