博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生JS操作DOM
阅读量:6510 次
发布时间:2019-06-24

本文共 1958 字,大约阅读时间需要 6 分钟。

html例子结构

1234

2456

789

复制代码

操作一个类,拿到类的属性,并进行控制

var one = document.querySelector('.one');one.style.color="blue";复制代码

操作所有相同的类,有两种方法。

1.getElementsByClassName()2.querySelectorAll()复制代码

因为js获得的节点中返回所有类是一个数组,所以要对其进行循环控制 用循环长度的方式

1.var two = document.querySelectorAll('.two');		for(var i=0;i
  • getElementsByClassName的性能比querySelectorAll好的多

  • getElementsBy返回的是Live Node List

  • querySelectorAll返回的是Static Node List

  • querySelectorAll可以用数组循环的方式

    var two = document.querySelectorAll('.two'); two.forEach(function(item){ item.style.color="green"; })

  • 操作父元素 ele.parentElement

  • 操作子元素 ele.children

  • 查询子元素 ele.getElementsByClassName ele.getElementsByTagName

  • 当前元素的第一个/最后一个子元素节点 ele.firstChild ele.lastChild

  • 下一个/上一个兄弟元素节点 ele.nextSibling; ele.previousSibling

获取节点属性

el.getAttribute('class')el.getAttribute('id')复制代码

设置节点属性

ele.setAttribute('class','sss');复制代码

判断、移除属性

el.hasAttribute('class'); el.removeAttribute('class');复制代码

获取文本值.innerHTML

js添加类

var one = document.getElementById("oneId");  one.classList.add("mystyle","ssss");   one.classList.remove("mystyle"); var twoClick = document.querySelectorAll('.twoClick');    for (var i = 0; i < twoClick.length; i++) {		    	    	twoClick[i].addEventListener('click',function(){    		this.classList.add("addclass");	})}复制代码

addClass hasClass removeClass toggleClass

function hasClass(obj, cls) {return obj.className.match(new RegExp('(\s|^)' + cls + '(\s|$)'));}function addClass(obj, cls) {      if (!this.hasClass(obj, cls)) obj.className += " " + cls;  }    function removeClass(obj, cls) {      if (hasClass(obj, cls)) {          var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');          obj.className = obj.className.replace(reg, ' ');      }  }    function toggleClass(obj,cls){      if(hasClass(obj,cls)){          removeClass(obj, cls);      }else{          addClass(obj, cls);      }  }  复制代码

实现点击当前,其他删除,再次循环点击类的所有数组

var two = document.getElementsByClassName('two');	for(var i=0;i

转载地址:http://irbfo.baihongyu.com/

你可能感兴趣的文章
Shell命令 中|| &&使用
查看>>
[转载]SharePoint 2013 解决方案中使用JavaScript
查看>>
ArcEngine创建要素类_面类型
查看>>
android adb指令
查看>>
排除网络故障课后习题参考答案
查看>>
[LeetCode]Multiply Strings
查看>>
NPOI 2.0导出word(docx格式)
查看>>
有趣的玩意儿
查看>>
DataSet的DataTable高效插入到数据库表
查看>>
Ubuntu文件管理命令系统
查看>>
c#日期类型的使用 (转)
查看>>
引用还是指针?
查看>>
XML与DataSet的相互转换类
查看>>
Python脚本控制的WebDriver 常用操作 <二十八> 超时设置和cookie操作
查看>>
lrzsz linix 远程文件传输工具。
查看>>
[转]ZooKeeper 集群环境搭建 (本机3个节点)
查看>>
去除标题_怎样去除总磷
查看>>
进入工程制图闪退_CAD设计必备:机械制图基础知识
查看>>
和 xcode_在iOS上用Xcode和Create ML检测皮肤癌
查看>>
python二维数组输出下三角_python,将三角函数绘制成二维数组
查看>>