var responseText = http_request.responseText;
rt = eval(responseText); //后台返回的数据
var ul = document.getElementById(id);  //获取ul对象
var li;
//循环添加li
for ( var i = 0; i < rt.length; i++) { 
  li = document.createElement("li");
  li.id = "pro" + i;
//         li.oclick = getCity("pro"+i);//在这里如何给li添加onclick事件要把li的id作为参数传进去?   li.value = rt[i];
  li.innerHTML = rt[i];
  ul.appendChild(li);
}我想在for循环中给li标签添加有参的onclick事件,并且参数是li的id,膜拜各位大神

解决方案 »

  1.   

    你直接在ul.appendChild(li);前设置好li的html不就行了。
    <li oclick=getCity("+pro"+i)"></li>
      

  2.   

    在创建<li>标签的时候多写点,把这句话onclick='getCity(this.id)'加到里面
    不知道是不是你想要的
      

  3.   

    for ( var i = 0; i < rt.length; i++) {  
    li = document.createElement("li");
    li.id = "pro" + i;
    // li.oclick = getCity("pro"+i);//在这里如何给li添加onclick事件要把li的id作为参数传进去?
    (function(i){
    li.onclick = function(){
    return getCity('pro'+i);
    }
    })(i);
    li.value = rt[i];
    li.innerHTML = rt[i];
    ul.appendChild(li);
    }
    楼主试试
      

  4.   

    调试成功没?就是 闭包的问题,楼主可以去看看
    http://topic.csdn.net/u/20120330/16/4ec95e8c-8e74-4894-ba7c-4d7b45352660.html