比如用children或getElementsByTagName之类的,获得了好几个html元素组成的集合。此时我想删掉其中的第3个,代码如下:
var p = elm.parentNode.children;
此时,这个p的类型是object,有点类似于数组但又不是,因为我不能用p.splice(2,1)这样的方法来删掉里面的元素。
我想请问一下,如何实现我删除其中某个元素的需求呢?难道必须要把此对象转换成数组?
简单点,将获取到的类数组的对象转换成数组即可用数组方法操作,或者调用apply方法试试:
给出第一种解法:
/**第一种方法**/
var a = document.getElementsByTagName("div");
var c = (new Array()).splice.apply(a,[0]);
c.splice(0,3);
alert(c.length)
本来我之后发现了这个方法,结果你已经回答了。。。谢谢帮助
function removeElement(node){
node.parentNode.removeChild(node);
}
例子:
HTML <select id="foo"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> Javascript // remove child "option" element with a "value" attribute equal to "2" $("#foo > option[value='2']").remove(); // remove all child "option" elements $("#foo > option").remove();
这样好像把页面上的这个node也给移出了吧?我只是想得到一个html集合,然后去掉里面的指定项,然后对剩下的进行某些操作。。
@十年灯: 直接用jquery筛选器排除掉那一项,在操作就是的了。不要想太复杂了。
@荒野的呼唤: 老兄,有纯JS的方法么