Javascript函数分配到按钮单击的问题

Javascript函数分配到按钮单击的问题,javascript,html,Javascript,Html,可能重复: 我对javascript有点幼稚。我有这个javascript代码,应该在点击按钮时运行。按钮在循环中动态生成。我所期望的是每次点击按钮都会收到不同的变量。但我收到的总是数组中的最后一个变量。请参阅下面的代码。有人看到这里明显出了什么问题吗 <!doctype html> <html> <head> <script type="text/javascript"> var myCars=["Saab","Volvo"

可能重复:

我对javascript有点幼稚。我有这个javascript代码,应该在点击按钮时运行。按钮在循环中动态生成。我所期望的是每次点击按钮都会收到不同的变量。但我收到的总是数组中的最后一个变量。请参阅下面的代码。有人看到这里明显出了什么问题吗

<!doctype html>
<html> 
<head>      
<script  type="text/javascript"> 

var myCars=["Saab","Volvo","BMW"]; 

    function loadCars() {
var carList = document.getElementById('mydiv');

for(var i=0;i < myCars.length ; i++ ){

//Append button
        var el = document.createElement("button");
        var car = myCars[i];
        el.name = "view_car";
        el.id = "view_car";
        el.value = "View car";
        el.type = "button";
        el.title = "View car "+i;
        el.innerHTML = "View car "+car;
        el.onclick = function() { 
            showMe(car,i);
        };

    carList.appendChild(el);
}

}

function showMe(carName,index){

    alert("Selected car="+carName +" , index="+index);
}

    </script>

</head>

<body  onload="loadCars()">

Cars will be loaded here 
<div  id="mydiv" class="carlist"></div>

</body>
</html>

var myCars=[“萨博”、“沃尔沃”、“宝马”];
功能装载车(){
var carList=document.getElementById('mydiv');
对于(变量i=0;i

没有什么明显的错误。但是,您可以在
onclick
功能中使用
car
i
。两者都依赖于外部
汽车
i
,并可进行操作。您必须使用闭包打破此引用:

    el.onclick = (function(carname,index){
        return function() { 
            showMe(carname,index);
        };
    })(car,i);

没有什么明显的错误。但是,您可以在
onclick
功能中使用
car
i
。两者都依赖于外部
汽车
i
,并可进行操作。您必须使用闭包打破此引用:

    el.onclick = (function(carname,index){
        return function() { 
            showMe(carname,index);
        };
    })(car,i);

问题是javascript没有保存值car,i对于动态生成的每个按钮问题是javascript没有保存值car,i对于动态生成的每个按钮