首页 > 试题广场 > 分析下面代码,对于该段代码分析说法正确的是(  &
[不定项选择题]
分析下面代码,对于该段代码分析说法正确的是(      )
<html>
<body>
 <div id="ele" class="div">
 <span id="s1" class="sp" lang="zh-cn">
 </span>
 </div>
</body>
<script type="text/javascript">  
 function exct() {
    var oEle = document.getElementById("ele");
    var child = oEle.children;
    console.log("ele.children的执行结果是:");
    for(i = 0; i < child.length; i++){
       console.log(child[i].tagName);
    }  
    child = oEle.childNodes;
    console.log("ele.childNodes的执行结果是:");
    for(i = 0; i < child.length; i++){
       console.log(child[i].tagName);
    }
 }  
 exct (); 
</script>
</html>

  • 其运行结果是:
    div1.children的执行结果是:
    SPAN
    div1.childNodes的执行结果是:
    undefined
    SPAN
    undefined
  • 其运行结果是:
    div1.children的执行结果是:
    SPAN
    div1.childNodes的执行结果是:
    SPAN
  • 对于DOM元素,children是指DOM Object类型的子对象,不包括tag之间隐形存在的TextNode,而childNodes包括tag之间隐形存在的TextNode对象
  • 对于DOM元素,childNodes是指DOM Object类型的子对象,不包括tag之间隐形存在的TextNode,而children包括tag之间隐形存在的TextNode对象
相信,肯定有不少同学对此产生疑惑,div元素下明明只有一个span元素,怎么会有3个子节点。
因为,childNodes获取子节点没有类型限制,span是一个元素节点,还有两个文本节点:空格和换行都被看做一个文本节点。
所以,3个子节点 两个文本节点 + 一个元素节点。
tagName用来获取元素的标签名,文本节点没有标签名,所以也就为undefined了
发表于 2019-09-05 18:46:47 回复(0)
应该不会输出div1.children而是ele.children吧
发表于 2019-09-20 18:11:17 回复(0)
无论结果是什么,ab都是错的吧,输出的是ele.children字符串啊,又不是放在字符串外面的
发表于 2019-09-17 17:19:20 回复(0)
children返回的是子元素,children返回的是子节点,包括文本节点,注释,元素节点
发表于 2019-09-08 12:53:25 回复(0)
children 属性与 childNodes 属性的差别 childNodes 属性返回所有的节点,包括文本节点、注释节点; children 属性只返回元素节点; 注:IE6 到 IE8 完全支持 children 属性,但是,返回元素节点和注释节点,IE9 以上版本只返回元素节点。
发表于 2019-08-20 18:31:04 回复(0)