JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
前端  /  管理员 发布于 4年前   543
本文实例讲述了JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支。分享给大家供大家参考,具体如下:
页面加载事件的比较
document.ready = function (callback) { // 兼容FF,Google if (document.addEventListener) { document.addEventListener('DOMContentLoaded', function () { document.removeEventListener('DOMContentLoaded', arguments.callee, false); callback(); }, false) } // 兼容IE else if (document.attachEvent) { document.attachEvent('onreadystatechange', function () { if (document.readyState == "complete") { document.detachEvent("onreadystatechange", arguments.callee); callback(); } }) } else if (document.lastChild == document.body) { callback(); }}window.onload = function () { alert('onload'); // 后执行};document.ready(function () { alert('ready'); // 先执行});
数组的常用操作方法
js 的构成
dom 节点
获取节点的方式
document.getElementById(“id”)document.getElementByTagName(“div”)document.getElementsByClassName(“classname”) ie 678 不支持document.querySelector(); // 返回第一个匹配的dom元素document.querySelectorAll(); // 返回所有dom元素匹配的集合
获取浏览器是否支持的写法如下
if(document.querySelector){ // do your business}
节点的访问
父节点(唯一):
dom.parentNode
兄弟节点 (兼容写法):
// nextSibling 和 previousSibling 是IE的写法var next = (dom.nextElementSibling) || (dom.nextSibling);var pre = (dom.previousElementSibling) || (dom.previousSibling);
孩子节点 (兼容写法):
// firstChild, lastChild 是IE的写法var first = father.firstElementChild || father.firstChild;var last = father.lastElementChild || father.lastChild;
孩子们节点:childNodes 和 children
// childNodes 是w3c推荐使用, 但谷歌等浏览器把换行也看成一个节点// 用下面的方式实现,比较麻烦var demo = document.getElementById("demo");var nodes = demo.childNodes;for(var i=0;idom 节点操作
创建节点:
var dom = document.createElement(“div”);添加节点:
// appendChild 将dom追加到dom1的最后面dom1.appendChild(dom) ;// insertBefore 将newDom 插入到 ReferencedDom 的前面, 返回值为新插入的值, dom1 为父节点dom1.insertBefore(newDom, ReferencedDom)删除节点:
removeChild() eg: domA.removeChild(domB); // 删除domA里面的孩子节点domB克隆节点: cloneNode 复制节点,接受一个布尔值,true表示深复制(复制节点及其内部所有节点), false 表示浅复制
// 深复制demo.cloneNode(true);// 浅复制demo.cloneNode(false);属性设定
非兼容ie6,7的写法
- 获取:dom.getAttribute(“属性”);
- 设置:dom.setAttribute(“属性”,”值”);
- 删除:dom.removeAttribute(“属性”);兼容写法举例:
- 获取:var cn = dom.className
- 设置:dom.className = “dcl”
- 删除:dom.className = null;特殊样式属性
cssText 用于更改多个样式属性设置
dom.style.cssText = "width:30px;height:10px;"常用的循环
- for
- while
- do while
switch 多分支语句
var str = "abc";switch(str) { case "a" // ... break; case "b" // ... break; case "c" // ... break; case "abc" // ... break; default: // ...}更多关于JavaScript相关内容可查看本站专题:《JavaScript操作DOM技巧总结》、《JavaScript页面元素操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
您可能感兴趣的文章:
- js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
- JavaScript判断页面加载完之后再执行预定函数的技巧
- 基于javascript实现页面加载loading效果
- JavaScript页面加载事件实例讲解
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号