先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。
JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素
复制代码 代码如下:
原生的JS获取ID为test的元素下的子元素。可以用:
var a = docuemnt.getElementById("test").getElementsByTagName("div"); 这样是没有问题的
此时a.length=2;
但是如果我们换另一种方法
var b =document.getElementById("test").childNodes;
此时b.length 在IE浏览器中没问题,其依旧等于2,但是在FF浏览器中则会使4,是因为FF把换行也当做一个元素了。
所以,在此,我们就要做处理了,需遍历这些元素,把元素类型为空格而且是文本都删除。
复制代码 代码如下:
function del_ff(elem){
var elem_child = elem.childNodes;
for(var i=0; i
if(elem_child[i].nodeName == "#text" && !/\s/.test(elem_child.nodeValue))
{elem.removeChild(elem_child)
}
}
}
上述函数遍历子元素,当元素里面有节点类型是文本并且文本类型节点的节