function addItem(itemID, type) {
    var item = new Item(itemID, type);
    itemList.push(item);
    orderListText = document.getElementById("orderList");
    orderListText.innerHTML += '<div id =' + item.htmlID + '>' +
                               item.name + 
                               '<span class="remove" onclick="remove(' + item.htmlID + ')">Remove</span><hr />' +
                               '</div>';
    alert(item.htmlID)  //这里输出的值是item1
}function remove(itemID) {
    alert(itemID); //这里输出的值为什么是[object HTMLDivElemnt] 却不是item1??
}

解决方案 »

  1.   

    var item = new Item(itemID, type);
     放在函数addItem 外面试试
     
     放在函数addItem内,其他函数访问不了
      
      

  2.   

    onclick="remove(' +  这句话的单引号和前面的单引号形成了一个字符串的结构,这样用innerHTML形成HTML中onclick的remove方法成了remove(item1),这样item1就成了变量,所以提示[object HTMLDivElemnt] 。
      

  3.   


    我要让alert(itemID)输出item1, 要怎么改
      

  4.   

    改成下面这样就行了orderListText.innerHTML += "<div id ="+itemID+">" + type +"<span class=remove onclick=remove('"+itemID+"')>Remove</span><hr /></div>";
      

  5.   

    这样
    orderListText.innerHTML += "<div id ="+item.htmlID+">" + type +"<span class=remove onclick=remove('"+item.htmlID+"')>Remove</span><hr /></div>";