<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);
<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);
我觉得可以建立一个临时数组处理一下: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);
splice.call(elems, 1, 1);
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进去把