分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

原生JS节点操作

发布时间:2023-09-06 01:43责任编辑:白小东关键词:暂无标签

获取子节点

1. children 不是标准的dom属性,但是几乎被所有浏览器支持。获取子元素的元素节点(只包括元素节点)

注意:在IE中,children包含注释节点。

2. childNodes 是标准属性。返回所有子节点。包括文本节点。

   注意:

 (1)nodeType   放回节点类型的值,一般是整数

       常用的有: nodeType==1是元素节点(element),2是属性节点(attr),3是文本节点(#text),8是注释节点(#comment),9是文档(document) 。

 (2)nodeName  标签的名称,返回的结果都是大写

 (3)nodeValue  返回value,但是只对文本节点和注释有用,对于标签没有作用。

<ul id="ul1"> ???<li> ???????<span>我是文本</span> ???</li> ???<li></li> ???<li></li></ul>
window.onload=function(){
???var oUl1=document.getElementById("ul1");
???console.log("children.length",oUl1.children.length); // 3 ???console.log("childNodes.length",oUl1.childNodes.length); // 7 ??????for(var i=0; i<oUl1.children.length; i++){ ??????oUl1.children[i].style.background=‘red‘; ???}}

childNodes模拟children

function myChildren(ele){ ???//获取所有的子元素(包括文本节点、元素节点、注释节点); ???var eleChild = ele.childNodes; ????var str = []; ???//循环所有的文本节点,以便都能拿到; ???for(var i = 0;i<eleChild.length;i++){ ???????//nodeType == 1 是元素节点(element),2是属性节点(attr),3是文本节点(text),8是注释节点,9是文档(document)。 ???????if(eleChild[i].nodeType == 1){ ???????????//将得到的每一项子元素添加到数组的后面; ???????????str.push(eleChild[i]); ???????} ???} ???return str;}//childNodes模拟childrenfunction myChildren2(ele){ ???//获取所有的子元素(包括文本节点、元素节点、注释节点); ???var eleChild = ele.childNodes; ????//循环所有的文本节点,以便都能拿到; ???for(var i = 0;i<eleChild.length;i++){ ???????//console.log(eleChild[i].nodeName); ???//#text ?Li ???????if(eleChild[i].nodeName == "#text" && !/\S/.test(eleChild[i].nodeValue)) { ???????????//删除数组中的text ???????????ele.removeChild(eleChild[i]); ???????} ???} ???return eleChild;}

源码地址:https://github.com/zuobaiquan/javascript/tree/master/%E5%8E%9F%E7%94%9FJS%E8%8A%82%E7%82%B9%E6%93%8D%E4%BD%9C

如果 觉得文章不错,可以请博主喝一杯奶茶哦!!!

原生JS节点操作

原文地址:https://www.cnblogs.com/zuobaiquan01/p/8461362.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved