DOM基础测试--不凡

82 篇文章 0 订阅
51 篇文章 0 订阅

DOM基础测试(对象 属性 方法)

1.如何获取 DOM 对象

 第一类:特殊对象
document.body  //body对象
document.documentElement  //根标签
第二类:get方法
document.getElementById('id');
document.getElementByClassName('className');  //返回值类数组
document.getElementByTagName('标签名');  //返回值类数组
第三类:query方法(H5之后出现的两种获取元素的方式)
document.querySelector('css选择器'); //返回的是css选择器的第一个值
document.querySelectorAll('css选择器'); //返回的是所有被查找的元素 是一个类数组;
第四类:间接通过关系获取对象
父子关系获得父级对象 或子级对象
兄弟关系获得兄弟对象

2.常用属性

style 属性: 背景 边框和边距 布局 列表 杂项 定位 打印 滚动条 表格 文本 规范 
innerHTML 属性:获取双闭合标签里的内容(识别标签)
innerText 属性 :获取双闭合标签里的内容(不识别标签,输入什么显示什么)
value 属性: input 元素规定值,不同input标签,value用法不同
* 对于 "button", "reset", "submit" 类型 - 定义按钮上的文本
* 对于 "text", "password", "hidden" 类型 - 定义输入字段的初始(默认)值
*对于 "checkbox", "radio", "image" 类型 - 定义与 input 元素相关的值。该值会发送到表单的action url.
checked 属性: 表示是否被选中的状态,常与单选框和复选框配合使用
src 属性:图像文件的 URL,该图像文件的的绝对路径或相对路径。

3.关系属性

//获取父节点
parentNode:子元素的父节点
//获取子节点
firstChild:第一个子节点(所有节点)
firstElementChild:第一个子节点(标签节点)
lastChild:最后一个子节点(所有节点)
lastElementChild:最后一个子节点(标签节点)
childNodes:所有子节点(所有节点)
children:所有子节点(标签节点)
//获取兄弟节点
previousSibling:上一个兄弟节点(所有节点)
previousElementSibling:上一个兄弟节点(标签节点)
nextSibling:下一个兄弟节点(所有节点)
nextElementSibiling :下一个兄弟节点(标签节点)
//获取除自己以外的所有兄弟节点:
var children = pNode.children;  //找到所有
    for (var i = 0; i < children.length; i++) {
            if (children[i] !== el) { //去除自己
                siblings.push(children[i]); 
            }

4.自定义属性
data-key是开发人员自己定义的属性,通过data-key的方式接收值,供我们操作
data-key自定义属性存在于dom对象的dataset属性中 格式是key:value;
相对于dom对象节点设置的属性,自定义属性的优点是:可以在标签中显示出来

    <ul>
        <li class="li" data-color="red" data-name="li">red</li>
         <!-- 设置 直接写在标签内部 -->
        <li class="li" data-color="yellow">yellow</li>
        <li class="li" data-color="orange">orange</li>
        <li class="li" data-color="blue">blue</li>
    </ul>
 <script>
        var lis  = document.querySelectorAll('ul li');
        console.log(lis);
        //要求: 将li变成标签内部的指定颜色
        // 解决方法:可以通过data-color给标签自定义属性
        for(var i= 0;i<lis.length;i++){
            // 先获取自定义属性的颜色
            // 取值 el.dataset.*  el.dataset['*']
            // var color = lis[i].dataset.color;
            var color = lis[i].dataset['color'];
            // 给li的背景色赋值
            lis[i].style.backgroundColor = color;
        }
    </script>

5.常用方法
操作类名

.classList.add()   //追加
.classList.remove()  //移除
.classList.contains()  //查询是否包含
.classList.toggle()  //取反

操作属性

通过对象方式赋值(不应在此处 不是方法)
    var  属性值 = 对象.属性名 //获取
	对象.属性名 = 属性值  //设置
	对象.属性名 = " "   //删除
通过dom方法
 // 对象.getAttribute()  //取值 
 // 对象.setAttribute() //设置
 // 对象.removeAttribute() //删除

节点的增删改查

创建节点:
新的标签(元素节点) = document.createElement("标签名");
增加节点:
父节点.appendChild(新的子节点);
父节点.insertBefore(新的子节点, 作为参考的子节点);
删除节点:
父节点.removeChild(子节点);
复制节点:
要复制的节点.cloneNode(); //默认false 浅克隆  true深克隆

6.为DOM元素绑定事件的步骤

获取事件源(DOM)
绑定事件
事件处理程序

7.常见事件类型

onclick
onmouseenter/onmouseleave 事件在鼠标指针移动到或离开元素上时触发
onmousedown/onmousemove/onmouseup
onfocus事件在对象获得焦点时发生/onblur事件会在对象失去焦点时发生
onload 事件在对象被加载后发生
onkeydown/onkeyup

8.绑定事件的三种方式

el.onclick = function(){}
行内绑定
el.addEventListener('click',function(){})

9.捕获和冒泡

当一个事件发生在具有父元素的元素上时,现代浏览器运行两个不同的阶段: 捕获阶段和冒泡阶段。
在捕获阶段:
浏览器检查元素的最外层祖先<html>,是否在捕获阶段中注册了onclick事件,如果是,则运行它。
然后,它检查<html>中点击元素的下一个祖先元素,并执行相同的操作,然后是点击元素再下一个祖先元素,依此类		推,直到到达实际点击的元素。
冒泡阶段:
浏览器检查实际点击的元素是否在冒泡阶段中注册了onclick事件,如果是,则运行它
然后检查下一个直接的祖先元素,并做同样的事情,然后是下一个,等等,直到它到达<html>元素。

在现代浏览器中,默认情况下,所有事件处理程序都在冒泡阶段进行注册。
注解: 如上所述,默认情况下,所有事件处理程序都是在冒泡阶段注册的,这在大多数情况下更有意义。如果真的想在捕获阶段注册一个事件,那么可以通过使用addEventListener()注册您的处理程序,并将可选的第三个属性设置为true。

在这里插入图片描述

10.定时器

setTimeout(function() {
//代码主体
}, 延迟时间毫秒);// 延迟执行

setInterval(function() {
//代码主体
}, 时间毫秒); //循环执行

clearTimeout(要清除的定时器);  //清除延迟执行的定时器

clearInterval(要清除的定时器); //清除循环执行的定时器

测试题目
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值