返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript中的this指向和自定义属性详解
  • 785
分享到

JavaScript中的this指向和自定义属性详解

2024-04-02 19:04:59 785人浏览 独家记忆
摘要

目录1.this关键字2.自定义属性3.综合案例1:tab选项卡的实现附录总结1.this关键字 this指向的是当前元素 全局函数中的this指向window对象 代码中声明

1.this关键字

this指向的是当前元素

全局函数中的this指向window对象

代码中声明了一个全局函数,是属于浏览器窗口对象的,所以this表示的就是浏览器窗口对象window


function fn() {
	consolo.log(this);
}
fn()

标签事件属性中的this指向window对象

如果将一个全局函数在一个标签属性中调用,如下:


<button onclick="fn()">点我试试</button>

function fn() {
	console.log(this)
}

事件属性函数中的this指向当前操作的标签

如果在标签对象的属性上声明了一个函数,此时这个函数属于标签属性,所以函数内部的this指向当前标签对象


<button id="btn">点我试试</button>

var btn = document.getElementById('btn');
btn.onclick = function() {
	console.log(this);
}

2.自定义属性

前端网页的开发中,javascript语法操作的主要是标签对象,在一些特定的场合,需要通过设置自定义属性来对标签进行操作

基本语法:element.属性名 =属性值


var btn = document.getElementById('btn');
btn.index = 1;

3.综合案例1:tab选项卡的实现

实现步骤
1.先完成静态页面的设计(htmlCSS代码见附录)

2.先获取页面元素


 var uli = document.querySelector('ul').querySelectorAll('li');
 var oli = document.querySelector('ol').querySelectorAll('li');

3.通过for循环为元素添加点击事件


for (var i = 0; i < uli.length; i++) {          
            uli[i].addEventListener('click', function () {   
               } )
        }

4.给元素添加自定义属性,给对应的选项卡添加索引


  uli[i].index = i;

给点击事件添加对应的样式(完整代码)


for (var i = 0; i < uli.length; i++) {
            uli[i].index = i;
            uli[i].addEventListener('click', function () {
                for (var j = 0; j < uli.length; j++) {
                    uli[j].className = '';
                    oli[j].className = '';
                }
                this.className = 'current';
                oli[this.index].className = 'current';
            })
        }

注意:本案例是通过添加类名来实现对应选项卡的显示和隐藏,在给元素添加对应的类名之前需要将所有元素的类名清除

附录


<style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .box {
            height: 250px;
            width: 300px;
            border: 2px solid;
        }
        ul {
            display: flex;
            justify-content: space-between;
            background: red;
            border-bottom: 2px #ccc;
        }
        ul li {
            float: left;
            width: 100px;
            color: #fff;
            cursor: pointer;
            height: 40px;
            line-height: 40px;
            text-align: center;
        }
        ul li.current {
            border-bottom: 5px green solid;
        }
        ol li {
            margin: 30px;
            display: none;
        }
        ol li.current {
            display: block;
        }
    </style>
    <div class="box">
        <ul>
            <li class="current">第一页</li>
            <li>第二页</li>
            <li>第三页</li>
        </ul>
        <ol>
            <li class="current">我是第一页</li>
            <li>我是第二页</li>
            <li>我是第三页</li>
        </ol>
    </div>

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: JavaScript中的this指向和自定义属性详解

本文链接: https://lsjlt.com/news/134938.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript中的this指向和自定义属性详解
    目录1.this关键字2.自定义属性3.综合案例1:tab选项卡的实现附录总结1.this关键字 this指向的是当前元素 全局函数中的this指向window对象 代码中声明...
    99+
    2024-04-02
  • JavaScript中的this指向问题详解
    前言 相信我,只要记住本文的 7️⃣ 步口诀,就能彻底掌握 JS 中的 this 指向。 先念口诀:箭头函数、new、bind、apply 和 call、欧...
    99+
    2024-04-02
  • JavaScript中 this 的绑定指向规则
    目录问题来源this 绑定规则1.默认绑定2.隐式绑定3.显示绑定4.new 绑定5.内置方法6.规则优先级7.规则之外8.实践问题来源 在 js 中,...
    99+
    2024-04-02
  • 一文详解JavaScript中this指向的问题
    目录1. 默认绑定2. 隐式绑定3. 显示绑定4. new 绑定5. 箭头函数的this6. 优先级7. 总结前提:文章讨论的都是非严格模式下this指向 1. 默认绑定 例子1 ...
    99+
    2023-05-14
    JavaScript this指向 JavaScript this
  • JavaScript函数中this指向问题详解
    this关键字 哪个对象调用函数,函数里面的this指向哪个对象。 **严格模式下:**在全局环境中,this指向的是undefined **非严格模式下:**在全局环境中,thi...
    99+
    2024-04-02
  • JavaScript 中this指向问题案例详解
    总结 全局环境 ➡️ window 普通函数 ➡️ window 或 undefined 构造函数 ...
    99+
    2024-04-02
  • 详解React中的this指向
    目录起因:经过:1.构造函数2.render 函数3.bind 和箭头函数结果:方法一:在构造函数中使用bind方法二:将箭头函数赋值给类的属性注意:性能存在差异打算记流水账一般细数...
    99+
    2024-04-02
  • JQuery中this的指向详解
    JavaScript中的this不总是指向当前对象,函数或类中的this指向与调用这个函数的对象以及上下文环境是息息相关的。 如在全局作用域调用一个含this的对象,此时当前对象的t...
    99+
    2024-04-02
  • 详解Android自定义控件属性
    在Android开发中,往往要用到自定义的控件来实现我们的需求或效果。在使用自定义 控件时,难免要用到自定义属性,那怎么使用自定义属性呢? 在文件res/values/下新建...
    99+
    2022-06-06
    属性 Android
  • 理解Android中的自定义属性
    本文实例讲解了Android中的自定义属性,具体内容如下 1、引言 对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 自定义一个CustomView(exten...
    99+
    2022-06-06
    自定义 属性 自定义属性 Android
  • JavaScript this的原理以及指向详解
    怎么判断this指向? ①在全局环境中调用就指向window。 ②作为对象的方法调用就指向该对象。 ③作为构造函数调用就指向这个新创建的对象。 ④可...
    99+
    2024-04-02
  • JavaScript进阶教程之函数的定义、调用及this指向问题详解
    目录前言一:函数的定义 1.1 命名函数 1.2 匿名函数 1.3 利用 new Function() 声明函数1.4 重要结论&n...
    99+
    2024-04-02
  • Javascript中函数分类&this指向的实例详解
    JS中定义函数的三种方式 通过实例来说明吧 <script> //method1 function fn() { ...
    99+
    2024-04-02
  • Angular中如何自定义结构型指令和属性型指令
    今天小编给大家分享一下Angular中如何自定义结构型指令和属性型指令的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、自定...
    99+
    2023-07-05
  • JavaScript this指向绑定方式及不适用情况详解
    目录前言问题复现调用位置默认绑定隐式绑定显式绑定new 绑定不适用的情况总结前言 JavaScript 中的 this 指向问题对于 web 前端入行不深的人来说是个比较复杂的问题。...
    99+
    2023-05-15
    JavaScript this指向 JavaScript this绑定方式
  • 详解JavaScript原型对象的this指向问题
    目录一、this指向二、修改this指向1、call()方法2、apply()方法总结 一、this指向 构造函数中的this 指向实例对象。那么原型对象this的指向呢? 如下:...
    99+
    2024-04-02
  • 如何理解HTML5中的标准属性与自定义属性
    这篇文章将为大家详细讲解有关如何理解HTML5中的标准属性与自定义属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。正如 HTML5 语法中所阐述的,元素可...
    99+
    2024-04-02
  • 详解JavaScript中的this硬绑定
    目录一、this显示绑定二、硬绑定一、this显示绑定 this显示绑定,顾名思义,它有别于this的隐式绑定,而隐式绑定必须要求一个对象内部包含一个指向某个函数的属性(或者某个对象...
    99+
    2024-04-02
  • JavaScript中的this指向问题怎么解决
    这篇文章主要介绍了一文搞懂JavaScript中的this指向问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇一文搞懂JavaScript中的this指向问题文章都会有所收获,下面我们一起来看看吧。this的...
    99+
    2023-07-04
  • JavaScript中this指向的问题怎么解决
    今天小编给大家分享一下JavaScript中this指向的问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 默...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作