【Day29】this - DOM

今天要来讲解 DOM 与 this 的关系,

对於 DOM 的操作有两种方式,

第一种是直接将方法写在元素上,

首先我们先准备一个 button

<button>按钮</button>

之後直接将方法写在该元素上

<button onclick = 'console.log(this)'>按钮</button>

此时我们按下 按钮,会直接触发 click 事件,该事件为显示 this

此时的 this 会将当前绑定元素的所有标签内容都显示出来,

当我们只想看绑定的 DOM 时,可以将 log 改成 dir

<button onclick = 'console.dir(this)'>按钮</button>

我们按下 按钮 时,此时的 this 会显示当前绑定的 DOM,

而这时就会是一个单纯的物件,其内部能看见有哪些属性能使用

而第二种方式是使用 addEventListener 的方式来监听

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

<script>
var fn = function() {
    console.dir(this);
    this.style.backgroundColor = 'lightblue';
}

var els = document.querySelectorAll('li');

for (var i = 0; i < els.length; i++) {
    els[i].addEventListener('click', fn);
}
</script>

该范例是使用 querySelectorAll 来选取所有 li 标签,

我们使用 for 回圈将每个 li 都补上监听器,而监听方法为 click

因此当我们点击 li 时,就会执行 fn 这个函式,

该函式会将我们所点击 li 的背景颜色改变,

并且会在 Console 显示该元素的物件,

而此时的 this 会指向触发事件的元素

因此我们可以得知在 DOM 事件监听中的 this

会指向原本触发事件的元素

以上就是今天的内容,感谢观看!!


<<:  当心已死前,来看看这篇吧!

>>:  【PHP Telegram Bot】Day20 - sendMessage:发送和转换 Markdown 讯息

【Day 26】JavaScript AJAX - XMLHttpRequest

说明 : 藉由 XMLHttpRequest(XHR)物件的方式来存取服务器端的资料,可以直接经由指...

JS Library 学习笔记:嘿!有听过 GSAP 吗? (三)

前两篇介绍了Tween,可以藉此建立出动态效果,但动画不单单是元件本身的动态,以整个专案的视角来看,...

Web应用扫描工具-Arachni小蜘蛛(上)

arachni是以ruby语言编写 针对web应用的安全漏洞扫描工具 利用各个模组载入进行测试 使用...

Day 11 | UnityAR世界建立 - ARFoundation/ARCore介绍

上一篇文章介绍了Unity AR(Android)的建置环境,本篇文章会简单介绍开发此款手游的主要A...

Day16 Let's ODOO: Report

Odoo提供建立report的功能,透过wkhtmltopdf来输出pdf,我们来写一个简单的范例,...