解决方案 »

  1.   


    (function  () { var oItem = document.getElementsByClassName("box");
    var oBoxCloseBtn = document.getElementsByClassName("box-close-btn"); //删除DOM节点
    function removeDom (el) {
    el.parentNode.removeChild(el);
    }
    for (var i = 0; i < oItem.length; i++) {
             //鼠标经过出现关闭按钮。删了(不是第一个元素)其中一个元素之后,就不能出发鼠标经过出现关闭按钮了。
            //但如果是从第一个元素按顺序删除可以正常显示关闭按钮
    (function (j){
    oItem[j].onmouseover = function  () {
    oBoxCloseBtn[j].className += " box-close-btn_show";
    }
    }(i));
    (function (j){
    oItem[j].onmouseout = function  () {
    oBoxCloseBtn[j].className = "box-close-btn";
    }
    }(i));
    oItem[i].onclick = function(event) {
    e = event || window.event;
      var el = e.target|| e.srcElement;
      console.log(el.className);
    switch (el.className){
    case 'box-close-btn box-close-btn_show':
    //删除一个元素
    removeDom(el.parentNode);

    break; default:
    return false;
    }
    }
    }

    })()
      

  2.   

    前面的注释搞错了
    应该是         //鼠标经过出现关闭按钮。删了(不是最后元素)其中一个元素之后,就不能出发鼠标经过出现关闭按钮了。
            //但如果是从最后一个元素向上删除可以正常显示关闭按钮
            //当如果删除第一个元素之后,之前第二个元素在鼠标经过时显示的关闭按钮出现在第三个元素,然后第三个的关闭按钮出现在第四个。如此类推。
            //最后一个元素在鼠标经过时就报错了
    (function  () { var oItem = document.getElementsByClassName("box");
    var oBoxCloseBtn = document.getElementsByClassName("box-close-btn"); //删除DOM节点
    function removeDom (el) {
    el.parentNode.removeChild(el);
    }
    for (var i = 0; i < oItem.length; i++) {
             //鼠标经过出现关闭按钮。删了(不是最后元素)其中一个元素之后,就不能出发鼠标经过出现关闭按钮了。
            //但如果是从最后一个元素向上删除可以正常显示关闭按钮
            //当如果删除第一个元素之后,之前第二个元素在鼠标经过时显示的关闭按钮出现在第三个元素,然后第三个的关闭按钮出现在第四个。如此类推。
            //最后一个元素在鼠标经过时就报错了
    (function (j){
    oItem[j].onmouseover = function  () {
    oBoxCloseBtn[j].className += " box-close-btn_show";
    }
    }(i));
    (function (j){
    oItem[j].onmouseout = function  () {
    oBoxCloseBtn[j].className = "box-close-btn";
    }
    }(i));
    oItem[i].onclick = function(event) {
    e = event || window.event;
      var el = e.target|| e.srcElement;
      console.log(el.className);
    switch (el.className){
    case 'box-close-btn box-close-btn_show':
    //删除一个元素
    removeDom(el.parentNode);

    break; default:
    return false;
    }
    }
    }

    })()
    前面的注释搞错了
    应该是         //鼠标经过出现关闭按钮。删了(不是最后元素)其中一个元素之后,就不能出发鼠标经过出现关闭按钮了。
            //但如果是从最后一个元素向上删除可以正常显示关闭按钮
            //当如果删除第一个元素之后,之前第二个元素在鼠标经过时显示的关闭按钮出现在第三个元素,然后第三个的关闭按钮出现在第四个。如此类推。