web APIS基础前三天重点总结

142 阅读1分钟

获取元素

语法

const 对象 = document.querySelector(`标签/类/id选择器`)

示例代码

const btn = doc.qs(`tubbon`)

操作元素属性

语法

dom对象.innerText/Html=`新值`//innerHTML 将文本内容添加/更新到任意标签位置,基本用HTMl
dom对象.属性=`值 `
dom对象.style.样式=`新值`//css 属性的 - 连接符与 JavaScript 的 减运算符 冲突,所以要改成驼峰法
dom对象.className/classlist.(add/remore/taggle)(`类名`)

示例代码

img.src=`./sdsfsdfsdf01`
div.style.bgColor=`pink`
box.classlist.add(`actove`)

操作表单属性

语法

获取dom对象.属性名
dom对象.属性名=新值

示例代码

表单.value=`文字`
表单.type=`password`
表单:checked

自定义属性

语法

data-类名 = `值` 开头
dataset.类名 调用

示例代码

<div data-id=`111` data-color=`pink`>
    log(dataset.id)//111
log(dataset.color)//pink

事件监听

语法

dom对象.addE...S...(`事件类型`,要执行的函数)

示例代码

const btn =doc.q...s...(`click`,fun..(){
               log(等待事件)         
                        })

事件类型

鼠标事件

click:鼠标经过
mouseenter:鼠标经过
mouseleave:鼠标离开
mouseover 和 mouseout 会有冒泡效果

焦点事件

focus:获得焦点
blur:失去焦点

键盘事件

keydown:键盘按下
keyup:键盘弹起

文本事件

input:用户输入
input.value
input:checked

事件对象

语法

dom对象.addE...s..(`事件类型`, 要执行的函数)

事件对象常用属性

获取对象类型就是:type

获取光标相对于浏览器可见窗口左上角的位置:clientX/clientY

获取光标相对于当前DOM元素左上角的位置:offsetX/offsetY

<input type="text">
<script>
    const input = document.querySelector('input')
    input.addEventListener('keyup', function (e) {//e就是指的dom对象
      // console.log(11)
      // console.log(e.keyCode)
      console.log(e.key)
      if (e.key === 'Enter') {
        console.log('我按下了回车键')
      }

环境对象

this 这个指定就是调用函数的那个变量,this指定don对象

如:dom对象.addE..s(事件类型,fun..(){

this===dom对象

})

*输调用我,我就指向谁

事件流

事件流是事件流动的路径.相同的事件才会有事件流.

事件冒泡

当一个元素触发事件后,会依次向上调用所有父级元素的 同名事件(冒泡事件默认是存在的;false)

从内向外传播

阻止事件冒泡

指阻断事件的流动,保证事件只在元素被执行,而不再去影响到其他对应的 祖先 元素

语法

事件对象.stopP...()

示例代码

son.addEventListener('click', function (e) {
      alert('我是儿子')
      // 组织流动传播  事件对象.stopPropagation()  点击son元素.
      e.stopPropagation()
    })

阻止默认行为

某些情况下需要阻断默认行为发生,比如阻止 链接的跳转/表单域的跳转

语法

dom对象.prevenDefault()

示例代码

 <form action="http://www.itcast.cn">
    <input type="submit" value="免费注册">
  </form>
  <a href="http://www.baidu.com">百度一下</a>
  <script>
    const form = document.querySelector('form')
    form.addEventListener('submit', function (e) {
      // 阻止默认行为  提交
      e.preventDefault()
    })
​
    const a = document.querySelector('a')
    a.addEventListener('click', function (e) {
      e.preventDefault()
 })

事件委托

原理是用冒泡的特点:给父元素注册事件,子元素触发的时候,会冒泡到父元素身上,从而触发父元素的事件

<ul>
    <li>第1个孩子</li>
    <li>第2个孩子</li>
    <li>第3个孩子</li>
    <li>第4个孩子</li>
    <li>第5个孩子</li>
    <!--<p>我变态</p>-->
  </ul>
<script>
/* 点击每个小li 当前li 文字变为粉色 */
    // 按照事件委托的方式 委托给父级 事件写到父级身上.
    /* 1 获取元素 */
    const ul = document.querySelector('ul')
    ul.addEventListener('click', function (e) {
      console.log('111')
      // this指向的是ul  
      // 事件委托给了父亲 
      // this.style.color = 'red'
      // 点击谁 谁才会变色
      //console.dir(e)
      //console.dir(e.target) // 就是我们点击的那个对象
      // e.target.style.color = 'red'
      // 我的需求,我们只要点击li才会有效果
      // 测试的时候需要添加一个其它的标签
      console.dir(e.target) // tagName: "LI"来判断
      if (e.target.tagName === 'LI') {
        e.target.style.color = 'red'
      }
    })
</script>

\