javascript如何操作文档元素(JavaScript操作元素实例大全)
类别:编程学习 浏览量:2985
时间:2021-11-03 15:53:28 javascript如何操作文档元素
JavaScript操作元素实例大全操作元素内容参考之前文章:JavaScript WebAPI、DOM、事件、操作元素
案例:显示隐藏密码案例
核心思路: (操作表单元素属性)
- 点击眼睛按钮,把密码框类型改为文本框就可以看见里面的密码 一个按钮两个状态,
- 点击一次,切换为文本框,继续点击一次切换为密码框
- 算法:利用一个flag变量,来判断flag的值,如果是1 就切换为文本框,flag 设置为0,如果是0 就切换为密码框,flag设置为1
<style> .box{ position: relative; width: 400px; border-bottom: 1px solid #ccc; margin: 100px auto; } .box input{ width: 370px; height: 30px; border: 0; outline: none; } .box img{ position:absolute; top: 2px; right: 2px; width: 24px; } </style> <body> <li class="box"> <label for=""> <img src="./image/close.jpg" alt="javascript如何操作文档元素(JavaScript操作元素实例大全)" border="0" />
案例:循环精灵图
核心思路: (操作元素样式)
- 利用for循环 修改精灵图片的 背景位置
- background-position 让循环里面的 i 索引号 * 44就是每个图片的y坐标
<style> *{ margin: 0; padding: 0; } li{ list-style-type: none; } .box{ width: 250px; margin: 100px auto; } .box li{ margin: 15px; float: left; width: 24px; height: 24px; background: url(./image/sprite.jpg" alt="javascript如何操作文档元素(JavaScript操作元素实例大全)" border="0" />
案例:密码框验证信息
核心思路:(用className修改样式属性)
- 首先判断的事件是表单失去焦点 onblur
- 如果输入正确则提示正确的信息颜色为绿色小图标变化
- 如果输入不是6到16位,则提示错误信息颜色为红色 小图标变化
- 因为里面变化样式较多,采取className修改样式
<style> li { width: 600px; margin: 100px auto; } .message { display: inline-block; font-size: 12px; color: #999; background: url(./image/mess.jpg" alt="javascript如何操作文档元素(JavaScript操作元素实例大全)" border="0" />
案例:背景换色
核心思想:(操作元素样式属性)
给4个小图片利用循环注册点击事件当点击了这个图片,让页面背景改为当前的图片核心算法: 把当前图片的src 路径取过来,给body 做为背景即可
<style> *{ margin: 0; padding: 0; } body{ background: url(./image/1.jpg" alt="javascript如何操作文档元素(JavaScript操作元素实例大全)" border="0" />
案例:表格换色
核心思路:(排他思想)
用到新的鼠标事件 鼠标经过 onmouseover 鼠标离开 onmouseout核心思路:鼠标经过 tr 行,当前的行变背景颜色,鼠标离开去掉当前的背景颜色注意: 第一行(thead里面的行)不需要变换颜色,因此获取的是 tbody 里面的行
<style> table{ width:800px; margin: 100px auto; text-align: center; border-collapse: collapse; font-size: 14px; } thead tr{ height: 30px; background-color: skyblue; } tbody tr{ height: 30px; } tbody td{ border-bottom: 1px solid #d7d7d7; font-size: 12px; color: blue; } .bg{ background-color: pink; } </style> <body> <table> <thead> <tr> <th>代码</th> <th>名称</th> <th>最新公布净值</th> <th>累计净值</th> <th>前单位净值</th> <th>净值增长率</th> </tr> </thead> <tbody> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> <tr> <td>003526</td> <td>农银金穗3个月定期开放债券</td> <td>1.075</td> <td>1.079</td> <td>1.074</td> <td>+0.047%</td> </tr> </tbody> </table> <script> //获取元素 var trs=document.querySelector('tbody').querySelectorAll('tr') //注册事件 for(var i=0;i<trs.length;i++){ trs[i].onmouseover=function(){ this.className='bg' } trs[i].onmouseout=function(){ this.className='' } } </script> </body>
案例:表单全选和反选
核心思想:
- 全选和取消全选做法: 让所有复选框的checked属性(选中状态) 跟随 全选按钮
- 复选框需要全部选中, 全选才能选中做法:给下面所有复选框绑定点击事件,每次点击,都要循环查看下面所有的复选框是否有没选中的,如果有一个没选中的, 上面全选就不选中
- 可以设置一个变量,来控制全选是否选中
<style> *{ padding: 0; margin: 0; } .wrap{ width: 300px; margin: 100px auto 0; } table{ border-collapse: collapse; border-spacing: 0; border: 1px solid #c0c0c0; width: 300px; } th,td{ border: 1px solid #d0d0d0; color: #404060; padding: 10px; } th{ background-color: #09c; font: bold 16px '微软雅黑'; color: #fff; } td{ font: 14px '微软雅黑'; } tbody tr{ background-color: #f0f0f0; } tbody tr:hover{ cursor: pointer; background-color: #fafafa; } </style> <body> <li class="wrap"> <table> <thead> <tr> <th> <input type="checkbox" id="cbAll" /> </th> <th>商品</th> <th>价钱</th> </tr> </thead> <tbody id="tb"> <tr> <td> <input type="checkbox" /> </td> <td>iPhone8</td> <td>8000</td> </tr> <tr> <td> <input type="checkbox" /> </td> <td>iPad Pro</td> <td>5000</td> </tr> <tr> <td> <input type="checkbox" /> </td> <td>iPad Air</td> <td>2000</td> </tr> <tr> <td> <input type="checkbox" /> </td> <td>Apple Watch</td> <td>2000</td> </tr> </tbody> </table> </li> <script> //获取元素 var cbAll = document.getElementById('cbAll'); //全选按钮 var tbs = document.getElementById('tb').getElementsByTagName('input'); //所有复选框按钮 //注册事件 //全选 cbAll.onclick = function () { for (var i = 0; i < tbs.length; i++) { tbs[i].checked = this.checked; } } //反选 for (var i = 0; i < tbs.length; i++) { tbs[i].onclick = function () { var flag = true //控制全选按钮 // 每次点击复选框都要检查是否全选 for (var i = 0; i < tbs.length; i++) { if (tbs[i].checked == false) { flag = false break } } cbAll.checked = flag } } </script> </body>
案例:tab栏切换
核心思想:(排他思想)
- Tab栏切换有2个大的模块
- 上的模块选项卡,点击某一个,当前这一个底色会是红色,其余不变(排他思想) 修改类名的方式
- 下面的模块内容,会跟随上面的选项卡变化。所以下面模块变化写到点击事件里面。 规律:下面的模块显示内容和上面的选项卡一一对应,相匹配
- 核心思路: 给上面的tab_list 里面的所有小li 添加自定义属性,属性值从0开始编号。
- 当点击tab_list 里面的某个小li,让tab_con 里面对应序号的内容显示,其余隐藏(排他思想)
<style> *{ margin: 0; padding: 0; } li{ list-style-type: none; } .tab{ width:978px; margin: 100px auto; } .tab_list{ height: 39px; border: 1px solid #ccc; background-color: #f1f1f1; } .tab_list li{ float: left; height: 39px; line-height: 39px; padding: 0 20px; text-align: center; cursor: pointer; } .tab_list .current{ background-color: #c81623; color: #fff; } .item{ display: none; } .item_info{ padding: 20px 0 0 20px; } </style> <body> <li class="tab"> <li class="tab_list"> <ul> <li class="current">商品介绍</li> <li>规格与包装</li> <li>售后保障</li> <li>商品评价(50000)</li> <li>手机社区</li> </ul> </li> <li class="tab_con"> <li class="item" style="display: block;"> 商品介绍模块内容 </li> <li class="item"> 规格与包装模块内容 </li> <li class="item"> 售后保障模块内容 </li> <li class="item"> 商品评价(50000)模块内容 </li> <li class="item"> 手机社区模块内容 </li> </li> </li> <script> //获取元素 var lis = document.querySelector('.tab_list').querySelectorAll('li'); var items = document.querySelectorAll('.item'); //注册事件 for (var i = 0; i < lis.length; i++) { //给li元素设置索引号 lis[i].setAttribute('index', i); lis[i].onclick = function () { //选项卡内容 //清除所有li的current类 for (var i = 0; i < lis.length; i++) { lis[i].className = ''; } //给自身添加current类 this.className = 'current'; //显示内容 var index = this.getAttribute('index'); //清除其余item的内容 for (var i = 0; i < items.length; i++) { items[i].style.display = 'none'; } //让自身item的内容显示 items[index].style.display = 'block'; } } </script> </body>
总结
到此这篇关于JavaScript操作元素的文章就介绍到这了,更多相关js操作元素内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- js的模块模式设计(如何理解JavaScript模块化)
- js实现自动轮播(原生js封装无缝轮播功能)
- js基础入门运算符(js 可选链操作符的使用)
- html5音频处理(recorder.js 基于Html5录音功能的实现)
- vscode react jsx语法 开发环境(React-vscode使用jsx语法的问题及解决方法)
- js的replace的用法
- 动画用css3还是js(前端制作动画的几种方式css3,js)
- nodejs怎么查看对象的全部属性(浅谈nodejs中创建cluster)
- vue多个对象实现双向数据绑定(利用js实现Vue2.0中数据的双向绑定功能)
- 微信发送镭射效果代码(JS实现微信"炸屎"大作战功能)
- js RegExp用法
- angularjs数据绑定类指令及作用(详解Angular数据绑定及其实现方式)
- js Date对象
- javaweb购物车案例(js实现模拟购物商城案例)
- nodejs登录案例(利用Node.js创建一个密码生成器的全步骤)
- pandasjson格式(对pandas处理json数据的方法详解)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
- 你好,新成理人丨成都理工大学2019级新生开学典礼隆重举行(新成理人丨成都理工大学2019级新生开学典礼隆重举行)
- 这部民警编演的红色话剧,讲述了一个不断追寻的故事(这部民警编演的红色话剧)
热门推荐
- python如何实现日期自动增加(Python脚本按照当前日期创建多级目录)
- php可以一次下载几个文件(php实现大文件断点续传下载实例代码)
- dede联动菜单样式(dede标签云如何生成不同颜色、不同大小的tag标签)
- html中table怎么用(详解CSS的table-layout属性的用法)
- tomcat启动慢什么原因(Tomcat服务器响应过慢解决方案)
- dedecms分页修改(dedecms 自动审核会员发表的最新文章的修改方法)
- python初学篇元组(元组列表字典莫烦python基础)
- 如何用python识别微信内容(Python 实现微信防撤回功能)
- docker资源隔离的实现方式(docker配置openGauss数据库的方法详解)
- dede模板本地部署(dedecms5.7首页和列表页模板中动态调用文章浏览次数的方法)