Dom基础语法

目录

一、获取元素

二、操作元素

改变元素的内容

获取、修改元素属性

修改表单元素

修改样式属性

三、节点

获取节点

创建节点

添加节点    

删除节点  

复制节点   

三种动态创建元素的区别

四、事件

事件三要素

注册事件

删除事件(解绑事件)

DOM事件流  

事件对象

事件对象常见的属性和方法

事件委托


console.dir 打印我们返回的元素对象,更好查看里面的属性和方法

一、获取元素

document.getElementById(id)    id是字符串  返回的是元素对象

document.getElementsByTagName(tagname)   tagname是字符串 返回带有指定标签名的对象的集合   以伪数组的形式存储   古老用法不太推荐

element.getElementsByTagName(tagname)    可以得到这个元素里面的某些标签

H5新增:

document.getElementsByClassName(类名)    返回元素对象的集合

document.querySelector(选择器)   指定选择器返回第一个元素对象

document.querySelectorAll(选择器)      返回指定选择器的所有元素对象集合

获取特殊元素:

获取body元素

document.body    返回body元素对象

获取html元素

document.documentElement   返回html元素对象


二、操作元素

改变元素的内容

可读写:

element.innerText    去除html标签同时空格和换行也会去掉

element.innerHTML    包括html标签,同时保留空格和换行

获取、修改元素属性

  1. element.属性    属性: src   href   id  alt   title    获取内置属性  注意:这里使用className
  2.  element.getAttribute(属性)   既可以获取自定义属性,也可以获取内置属性

          element.setAttribute(属性,值)   注意:class特殊  这里属性写class不是className

          element.removeAttribute(属性)

         H5获取自定义属性:

           element.dataset.index或者element.dataset[‘index’]

修改表单元素

type   value   checked   selected   disabled

表单元素.属性         表单里面的值通过value来修改

修改样式属性

element.style.样式属性    是行内样式操作,权重比较高   样式采用驼峰命名法   

element.className  类名样式操作   会直接更改元素的类名,会覆盖原先的类名

排他思想


三、节点

元素节点nodeType为1   主要使用

属性节点nodeType为2

文本节点nodeType为3(文本节点包括文字、空格、换行等)

获取节点

父节点 parentNode   得到最近的父亲  找不到返回null

子节点   注意:子节点只算第一层,孙子节点不在子节点的范畴内

            childNodes(标准)  返回所有子节点 包含元素节点 文本节点

            children(非标准)  返回子元素节点

第一个子元素 firstChild  返回第一个子节点 不管元素节点还是文本节点

                       firstElementChild   返回第一个子元素节点   有兼容

                       children[0]    没有兼容性

最后一个子元素   lastChild  返回最后一个子节点 不管元素节点还是文本节点

                            lastElementChild   返回最后一个子元素节点   有兼容

                           元素.children[元素.children.length-1]   没有兼容性

兄弟节点    nextSibling   下一个兄弟节点  不管元素节点还是文本节点

                  nextElementSibling 返回下一个兄弟元素节点   有兼容

                  previousSibling  上一个兄弟节点   不管元素节点还是文本节点

                  previousElementSibling 返回上一个兄弟元素节点   有兼容

创建节点

                  document.createElement(‘tagName’)   也称为动态创建元素节点

添加节点    

                   appendChild(child)   将一个节点添加到父节点的子节点的列表末尾

                   insertBefore(child,指定元素)  将一个节点添加到父节点的指定子节点的前面

删除节点  

                    removeChild(child) 

复制节点   

                     元素.cloneNode()  

如果参数为空或false则是浅拷贝,即只克隆复制节点本身,不克隆里面的子节点,不复制内容

如果参数为true则是深拷贝,复制节点,复制里面子节点,复制内容

阻止链接跳转  添加javascript:void(0);或者javascript:;

三种动态创建元素的区别

document.write()  冷门    文档流执行完毕,则它会导致页面全部重绘

element.innerHTML 可采用数组方法提高效率,此时比createElement效率更高,但结构复杂

document.createElement()  创建多个元素比innerHTML采用拼接字符串效率高,结构清晰


四、事件

事件三要素

事件源  事件类型  事件处理程序

  1. 获取事件源
  2. 注册事件
  3. 添加事件处理程序(函数赋值方式)

注册事件

        ①传统方法

                利用on开头的事件例如:onclick

                特点:注册事件的唯一性

                同一个元素同一个事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面 注册  的处理函数

         ② 方法监听注册方法

                addEventListener()   ie9之后支持

                特点:同一个元素同一个事件可以注册多个监听器

                addEventListener(type,listener,[,useCapture])  

                                 type:事件类型字符串,不需要带on

                                listener:事件处理函数,会调用该监听函数如果在外面声明,在这里使用不要添加小括号,因为这里只使用不调用,只有调用才添加小括号

                                useCapture:可选参数,是一个布尔值,默认是false

       ③ attachEvent   ie9之前支持,通常不使用

                attachEvent(eventNameWithOn,callback)

                        eventNameWithOn:事件类型字符串,这里要带on

                        callback:事件处理函数

删除事件(解绑事件)

①传统方式      以on开头的事件=null

②方法监听注册方法  removeEventListener(type,listener,[,useCapture])

③detachEvent(eventNameWithOn,callback)


DOM事件流  

从页面中接受事件的顺序,事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流

事件流三个阶段:

           捕获阶段  目标阶段  冒泡阶段

事件对象

   event写到侦听函数小括号里面,当作形参来看

   只有有了事件才会存在,是系统自动创建的,不需要我们传递参数

   事件对象是我们事件的一系列相关数据的集合,跟事件相关的

   这个事件处理对象可以自己命名 通常写e或者evt

  有兼容性  ie678使用的是window.event

              解决:e=e||window.event

事件对象常见的属性和方法

e.target 返回触发事件的对象  标准  

        和this的区别:

           this返回绑定事件的对象

e.srcElement  返回触发事件的对象  不标准

e.type   返回事件的类型  比如click  不带on

e.cancelBubble   该事件阻止冒泡  不标准 ie6~8使用

e.returnValue    该属性阻止默认事件  非标准  ie6~8使用  适合传统注册方式

e.preventDefault()   该属性阻止默认事件  标准

e.stopPropagation()   该事件阻止冒泡  标准

return false    阻止默认事件  没有兼容  return后面代码不执行了

只适合于传统注册方式

鼠标事件对象MouseEvent

        e.clientX    返回鼠标相对于浏览器窗口可视区的X坐标

        e.clientY    返回鼠标相对于浏览器窗口可视区的Y坐标

        e.pageX     返回鼠标相对于文档页面的X坐标  ie9+支持

        e.pageY     返回鼠标相对于文档页面的Y坐标   ie9+支持

        e.screenX    返回鼠标相对于电脑屏幕的X坐标

        e.screenY   返回鼠标相对于电脑屏幕的Y坐标

键盘事件

        onkeyup   按键弹起时候触发    不区分字母大小写

        onkeydown  按键按下时候触发   不区分字母大小写

        onkeypress  按键按下时候触发  不识别功能键  比如ctrl  shift 箭头  区分字母大 小写

执行顺序   onkeydown-----onkeypress------onkeyup

键盘事件对象

        e.key      得到相应键的值  有兼容

        e.keyCode  得到相应键的ascii码值

扩展知识:

禁止选中文字和禁止右键菜单

contextmenu主要控制应该何时显示上下文菜单,用于程序员取消默认的上下文菜单

selectstart 开始选中


事件委托

       不给每个字节点设置事件监听器,而是事件监听器设置在父节点上,然后利用冒泡原理影响设置每个字节点

只操作了一次dom,提高了程序性能


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts 是一个基于 JavaScript 的可视化库,用于构建交互式的图表和数据可视化。它提供了丰富的图表类型和灵活的配置选项,可以用于各种场景下的数据展示。 ECharts 的基础语法主要涉及以下几个方面: 1. 引入 ECharts 库:在 HTML 页面中引入 ECharts 库的 JavaScript 文件,例如: ```html <script src="echarts.min.js"></script> ``` 2. 创建图表实例:通过调用 echarts.init() 方法创建一个图表实例,并指定要渲染图表的 DOM 元素,例如: ```javascript var myChart = echarts.init(document.getElementById('chart-container')); ``` 其中,'chart-container' 是一个 div 元素的 id,用于容纳图表。 3. 配置图表选项:使用一个配置对象来定义图表的样式、数据和交互行为,例如: ```javascript var option = { // 图表的标题 title: { text: '示例图表', }, // 图表的数据系列 series: [ { name: '数据系列1', type: 'bar', data: [10, 20, 30, 40, 50], }, ], }; ``` 这里我们定义了一个柱状图,数据系列为 [10, 20, 30, 40, 50]。 4. 设置图表选项:通过调用 setOption() 方法将配置对象应用到图表实例上,例如: ```javascript myChart.setOption(option); ``` 5. 渲染图表:调用图表实例的 render() 方法,将配置好的图表渲染到指定的 DOM 元素上,例如: ```javascript myChart.render(); ``` 以上就是 ECharts 的基础语法,通过这些步骤可以创建并渲染出一个简单的图表。当然,ECharts 还提供了更多丰富的配置选项和图表类型,可以根据需要进行进一步的定制和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值