<div>
<ul>
   <li>li 1</li>
   <li>li 2</li>
   <li>li 3</li>
</ul>
</div>
var elems = document.getElementsByTagName("li");
alert(elems.length); //现在elems中有3个元素,如何像删除数组中的元素那样删除其中的某个元素呢,但又不能实际删除DOM元素,也就是只删除elems的元素,而不删除DOM的某个li,要怎么做呢?//elems.splice(1, 1);
alert(elems.length);

解决方案 »

  1.   

    elems.remove(1); //删除下标为1的元素 
      

  2.   

    elems是个对象,而不是数组啊。
    我觉得可以建立一个临时数组处理一下:var elems = document.getElementsByTagName("li");
    alert(elems.length); //现在elems中有3个元素,如何像删除数组中的元素那样删除其中的某个元素呢,但又不能实际删除DOM元素,也就是只删除elems的元素,而不删除DOM的某个li,要怎么做呢?var arr = new Array();
    for(var i = 0; i < elems.length; i ++) arr.push(i);
    function rm(x) {
    for (var i = 0; i < arr.length; i ++) if (arr[i] == x) delete arr[i];
    }rm(0);
    rm(2);for( x in arr) alert(elems[arr[x]].innerHTML);
      

  3.   

    var splice = Array.prototype.splice;
    splice.call(elems, 1, 1);
      

  4.   

    var elems = document.getElementsByTagName("li");
    var slice = Array.prototype.slice;
    try {
    var eleArr = slice.call(elems);
    alert(eleArr.length);
    eleArr.splice(0, 1);
    alert(eleArr.length);
    } catch (e) {
    alert(e.message);
    }
    这招在除了ie之外的其他浏览器都可以调试通过。
    实在不行,你就先new Array,然后一个个的push进去把