removeChild 返回值的长度问题

removeChild 返回值的长度问题

老师你好,childNodes.length返回的删除值的长度是1,未删除的返回值是6,加起来正好是总数7。为什么children.length删除的那项返回的值的长度是0,不是1呢?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>removeChild/removeNode</title>

</head>

<body>

<ul id="ul">

<li>1</li>

<li>2</li>

<li>3</li>

</ul>

<script>

//removeChild

var ul=document.getElementById("ul");

var newUl=ul.removeChild(ul.firstElementChild);

console.log(newUl);//<li>1<li>

console.log(newUl.childNodes.length);//1

console.log(ul.childNodes.length);//6

console.log(newUl.children.length); //0 为什么返回的值是0,不是1呢?

console.log(ul.children.length); //2

</script>

</body>

</html>

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1、children 属性返回元素的子元素的集合(且children 属性只返回元素节点)

2、但是如下newUl是删除的li节点。该节点是没有子元素的。所以为0;

http://img1.sycdn.imooc.com//climg/5df482c209ec5efb06080051.jpg

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 花生香又脆 提问者 #1
    children只包含元素节点,NewUl里没有元素节点了,所以是0,childNodes包含所有的子节点,所以childNodes返回的长度1是<li>1</li>里"1"这个文本子节点对吗?
    2019-12-14 15:03:50
好帮手慕糖 2019-12-14 15:10:57

同学你好,是的。childNodes会返回的长度1,指的就是li中的文本节点。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师