JavaScript获取子元素

JavaScript015

JavaScript获取子元素,第1张

这是因为getElementById再结合children属性获取的是DOM元素,而querySelectorAll获取的则是NodeList对象元素。前者会随页面DOM结构的变化而变化,比如删除了box中的一个div,这个div就会从children中被“真实地”删掉,children.length的计数也会减1。而后者如果删除其中的某个子元素,被删的元素并不会消失,而是变成一个空对象,children1.length的计数也不会改变,这样的话 for(var i=0i<children1.length) 这个循环由于i的值不变(总是等于0),而children1.length也不会减少(总是4),这样就变成死循环了(同时也意味着把一个已删除的元素不断重复删除)。

改成这样就没问题了:

for(var i=0i<children1.lengthi++){

  box.removeChild(children1[i])

}

常见的方法是使用children()方法或者fand()方法都是可以获取到某个元素的子元素的,children()

方法返回匹配元素集合中每个元素的子元素,find()方法获得当前元素集合中每个元素的后代,通过选择器、jQuery

对象或元素来筛选。

js中有四种获取dom的方法:

根据ID获取对象:document.getElementById(ID)

根据class获取对象数组:document.getElementsByClassName("box")

根据tag获取对象数组:document.getElementsByTagName("p")

根据name获取对象数组:document.getElementsByName(NAME)

用jquery选择器就多得去了,一般都用jquery,js一大串代码用jquery几个符号搞定。

根据ID获取对象:$('#ID')

根据class获取对象数组:$(".box")

根据tag获取对象数组:$("p")

根据name获取对象数组:$('input[name="nw"]')