【JavaScript】原生js中this的应用以及如何实现选项卡实例

news/2024/7/19 13:43:17 标签: js

用原生js实现选项卡效果。

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div1 div {
            width: 300px;
            height: 200px;
            background-color: #ccc;
            border: 1px solid #999;
            display: none;
        }
        #div1 .active{background: yellow;}
    </style>
</head>

<body>
    <div id="div1">
        <input type="button" value="教育" class="active">
        <input type="button" value="留学">
        <input type="button" value="出国">
        <input type="button" value="课程">
        <div style="display: block;">1111</div>
        <div>2222</div>
        <div>3333</div>
        <div>4444</div>
    </div>
    <hr>
    <ol>
        <li>this: 当前发生事件的元素</li>
        <li>在js里,给元素添加自定义属性</li>
        <li>选项卡实现逻辑:先把所有 btn 的属性移除,然后给当前发生事件的元素添加样式,把所有 div 隐藏,将第 this.index 个显示</li>
    </ol>
    <script>
        window.onload = function(){
            var oDiv = document.getElementById('div1');
            var oBtn = oDiv.getElementsByTagName('input');
            var aDiv = oDiv.getElementsByTagName('div');
            for(var i = 0; i < oBtn.length; i++){
                oBtn[i].index = i //给元素添加自定义属性
                oBtn[i].onclick = function(){
                    for(var i = 0; i < oBtn.length; i++){
                        oBtn[i].className = ''
                        aDiv[i].style.display = 'none'
                    }
                    this.className = 'active'
                    console.log(this.index)
                    aDiv[this.index].style.display = 'block'
                }
            }
        }
    </script>
</body>

 


http://www.niftyadmin.cn/n/497540.html

相关文章

【JavaScript】原生js中变量的作用域以及字符串连接

一个简历日历的实例。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

puppet 配置 5 常见例子

变量复用 说明: 变量定义后可以直接调用变量名称使用范例: $etcd_controller110.100.84.22 $etcd_controller210.100.84.23 $etcd_controller310.100.84.24$etcd_host1gx-yun-084022.vclound.com $etcd_host2gx-yun-084023.vclound.com $etcd_host3gx-yun-084024.vclound.com$e…

【JavaScript】原生js基本数据类型以及数据类型转换

组成部分 ECMAScript&#xff1a;是js中的核心&#xff0c;扮演解释器的作用。 DOM: &#xff08;document object model&#xff09;作用是操作HTML&#xff0c;对象是 document。 BOM&#xff1a;&#xff08;browser object model&#xff09;作用是操作浏览器&#xff0c;对…

ecshop商品详细页图片放大镜(MagicZoom)

文件 mzp-packed.js http://photo.poco.cn/best_pocoer/js/mzp-packed.js style.css .MagicZoomBigImageCont {border:1px solid #66C010;} .MagicZoomHeader {font:12px Arial;color:#fff;text-align:center !important;background: #66C010; padding:4px 0;} .MagicZoomPup …

如何实现ecshop中把相册里每一张图片自动缩略成 商品图片大小

&#xff08;一&#xff09;现在的ecshop 在添加新商品的时候 把上传的商品图片 剪裁成 小图片 (在前台单个商品页面的 商品图片下面的 相册图片列表图 片 &#xff0c; $GLOBALS[_CFG][thumb_width], $GLOBALS[_CFG][thumb_height] 这个是大小) 跟 商品图片(就是单个商品页面的…

Android: 设置 app 字体大小不跟随系统字体调整而变化

在做 app 内字体大小的需求&#xff0c;类似于 微信中设置字体大小。 那么就需要 app 不跟随系统字体大小调整而变化&#xff0c;找到了两个方法。 方法1&#xff1a; 重写 getResource() 方法&#xff0c;修改 configuration 为 setToDefaults() 1 /**2 * 设置 app 不…

修改ecshop中的{insert name='cart_info'}

很多人使用ecshop开源程序开网店&#xff0c;但是在使用ECShop模板的时候&#xff0c;很多人想把购物车地方修改的更人性化点&#xff0c;比如说把原来“购物车中有X件商品”改为“您的购物车中有X件商品&#xff0c;总计&#xffe5;80元”。 所以&#xff0c;我们只有通过…