JS学习之DOM操作元素

显然JS学习没有HTML节奏快,感觉知识点还要琐碎难记,但是只要花时间努力攻克难关就能跟上老师的脚步,不能轻易放弃

常用元素的属性操作

  1. innerText.innerHTML改变元素内容

  2. scr href

  3. id alt title

JS学习之DOM操作元素_第1张图片

只要是元素.属性值 就能改变属性

案例:分时显示不同图片,显示不同问候语

根据不同时间,页面显示不同图片,同时显示不同的问候语

如果上午时间打开页面,显示上午好,显示上午的图片

如果下午时间打开页面,显示下午好,显示下午的图片

如果晚上时间打开页面,显示晚上好,显示晚上的图片

分析:

  1. 根据系统不同事件来判断,所以需要用到日期内置对象

  2. 利用多分支语句来设置不同的图片

  3. 需要一个图片,并且根据时间修改图片,就需要用到操作元素src属性

  4. 需要一个div元素,显示不同问候语,修改元素内容即可

JS学习之DOM操作元素_第2张图片

 

表单元素的属性操作

利用DOM可以操作如下表单元素的属性:

type value checked selected disabled

JS学习之DOM操作元素_第3张图片

 JS学习之DOM操作元素_第4张图片

案例:仿京东显示密码

点击按钮将密码框切换为文本框,并可以查看密码明文

分析:

  1. 核心思路:点击眼睛按钮,把密码框类型改为文本框就可以看见两里面的密码

  2. 一个按钮两个状态,点击一次,切换为文本框,继续点击一次切换为密码框

  3. 算法:利用一个flag变量,来判断flag的值,如果是1就切换为文本框,flag设置为0,如果是0就切换为密码框,flag设置为1JS学习之DOM操作元素_第5张图片

 

样式属性操作

可以通过JS修改元素的大小,颜色,位置等样式

  1. element.style 行内样式操作

  2. element.className 类名样式操作

JS改变样式 ====>鼠标点击后div变成紫色

注意:

  • JS里面的样式采取驼峰命名法

  • JS修改style样式操作,产生的是行内样式 ,CSS权重比较高

案例:淘宝点击关闭二维码

当鼠标点击二维码关闭按钮的时候,则关闭整个二维码

分析:

  1. 核心思路:利用样式的显示和隐藏完成,dispaly:none隐藏元素 dispaly:bolck显示元素

  2. 点击按钮,就让这个二维码盒子隐藏起来即可

JS学习之DOM操作元素_第6张图片

 

案例:循环精灵图背景

可以利用for循环设置一组元素的精灵图背景

分析:

  • 首先精灵图图片排列是由规律的(竖着排列)

  • 核心思路:利用for循环 修改精灵图片的背景位置background-position

  • 剩下就是考验数学功底

  • 让循环里面的 i 索引号 *44就是每个图片的y坐标

JS学习之DOM操作元素_第7张图片

其中- 负号不能少 0,0后面的图片是往下走 所以是y轴是负数

让另一个赋值的属性去表示位置

案例:显示隐藏文本框内容

当鼠标点击文本框时,里面的默认文字隐藏,当鼠标离开文本框时,里面的文字显示

分析:

  1. 首先表单需要2个新事件,获得焦点onfocus 失去焦点onblur

  2. 如果获得焦点,判断表单里面的内容是否为默认文字,如果是默认文字,就清空表单内容

  3. 如果失去焦点,判断表单内容是否为空,如果为空,则表单内容改为默认文字

JS学习之DOM操作元素_第8张图片

 

通过className更改元素样式

JS学习之DOM操作元素_第9张图片

注意:

  1. 如果样式修改较多,可以采取操作类名方式更改元素样式

  2. class因为是个保留字,因此使用className来操作元素类名属性

  3. className 会直接更改元素的类名,会覆盖原先的类名

    如何保留原先的类名? 旧类名 +空格+ 新类名

案例:密码框格式提示错误信息

用户如果离开密码框,里面输入个数不是6~16 则提示错误信息,否则提示输入正确信息

分析:

  1. 首先判断的时间是表单失去焦点onblur

  2. 如果输入正确则提示正确的信息颜色为绿色小图标变化

  3. 如果输入不能6到16位,则提示错误信息颜色为红色 小图标变化

  4. 因为里面的变化样式较多,采取className修改样式

JS学习之DOM操作元素_第10张图片 利用到了className更改元素样式

操作元素素总结:

JS学习之DOM操作元素_第11张图片

 

你可能感兴趣的:(JavaScript,javascript,学习,前端)