DOM--自定义属性的操作

DOM元素属性分为内置属性和自定义属性,比如我们常见的class、id、src、input等属性,都是内置属性,简单理解就是元素自带的属性。而自定义属性就是程序员为了方便使用而自己给元素设置的属性。

1. 获取属性值

① element.属性 获取属性值。
② element.getAttribute('属性');

区别:
(1) element.属性 获取内置属性值(元素本身自带的属性),如img..src
(2) element.getAttribute(‘属性’); 主要获得自定义的属性 (标准) 我们程序员自定义的属性;

2. 设置属性值

① element.属性 = ‘值’   设置内置属性值。
② element.setAttribute('属性', '值'); 

区别:
(1) element.属性   设置内置属性值
(2) element.setAttribute(‘属性’,'值');   主要设置自定义的属性 (标准)

3. 移除属性

① element.属性 = ‘’   将值设置为空,就相当于移除了内置属性值。
element.removeAttribute('属性');  主要移除自定义的属性 

4.案例:tab 栏切换

需求:当鼠标点击上面相应的选项卡(tab),下面内容跟随变化

<!-- css样式 -->
<style>
    * {
        margin: 0;
        padding: 0;
    }
    .tab-box {
        width: 800px;
        margin: 50px;
    }
    .clear::after {
        content: "";
        display: block;
        clear: both;
    }
    .tab-title {
        height: 50px;
        background-color: #F9F9F9;
    }
    .tab-title li {
        float: left;
        line-height: 50px;
        list-style: none;
    }
    a {
        display: block;
        color: #666;
        text-decoration: none;
        padding: 0 30px;
    }
    .current {
        color: #fff;
        background-color: #DE3A38;
    }
    .item {
        display: none;
        margin-top: 10px;
        height: 160px;
        padding: 20px;
        background-color: lightpink;
    }
</style>
<body>
    <!-- html结构 -->
    <div class="tab-box">
        <div class="tab-title">
            <ul class="clear">
                <li><a href="#" class="current">商品介绍</a></li>
                <li><a href="#">规格与包装</a></li>
                <li><a href="#">售后保障</a></li>
                <li><a href="#">商品评价</a></li>
            </ul>
        </div>
        <div class="tab-content">
            <div class="item" style="display: block;">
                商品介绍对应版块的内容
            </div>
            <div class="item">
                规格与包装对应版块的内容
            </div>
            <div class="item">
                售后保障对应版块的内容
            </div>
            <div class="item">
                商品评价对应版块的内容
            </div>
        </div>
    </div>
    <!-- js代码 -->
    <script>
        // 1. 获取元素
        let as = document.querySelectorAll('.tab-title li a');
        let items = document.querySelectorAll('.tab-content .item');
        // 2. 循环遍历给每个a绑定事件
        for (let i = 0; i < as.length; i++) {
            as[i].onclick = function() {
                // 然后给其添加自定义属性index,等同于索引号
                this.setAttribute('index', i);
                // 利用排他思想为其添加类名current,表示点中的这个选项栏样式特别
                // (1) 先给所有a 清除类名current(干掉所有人)
                as.forEach(item => {
                    item.className = '';
                });
                // (2) 给当前的a添加类名current(留下我自己)
                this.className = 'current';
                // 点击a对应的内容模块要显示出来,利用刚刚设置的自定义属性index
                // (1) 获取index的属性值,定义变量index接收
                let index = as[i].getAttribute('index');
                // (2) 使用index作为下标获取对应版块的内容,同样需要利用排他思想
                items.forEach(item => {
                    // 先让所有的item都隐藏(干掉所有人)
                    item.style.display = 'none';
                });
                // 让对应版块的item显示(留下需要的)
                items[index].style.display = 'block';
            };
        }
    </script>
</body>

案例分析:

① Tab栏切换有2个大的模块
② 上的模块选项卡,点击某一个,当前这一个底色会是红色,其余不变(排他思想) 修改类
名的方式
下面的模块内容,会跟随上面的选项卡变化。所以下面模块变化写到点击事件里面。
④ 规律:下面的模块显示内容和上面的选项卡一一对应,相匹配。
⑤ 核心思路: 给上面的tab_title 里面的所有小a 添加自定义属性,属性值从0开始编号。
⑥ 当我们点击tab_title 里面的某个小a,让tab_content 里面对应序号的内容显示,其余隐藏(排他思想)

5.H5自定义属性

自定义属性目的:是为了保存并使用数据有些数据可以保存到页面中而不用保存到数据库中
自定义属性获取是通过getAttribute(‘属性’) 获取。

但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。
H5给我们新增了自定义属性:

(1) 设置H5自定义属性

H5规定自定义属性以data-开头作为属性名并且赋值。
比如 <div data-index=“1”></div>    或者使用 JS 设置   element.setAttribute(‘data-index’, 2)

(2) 获取H5自定义属性

① 原来获取自定义属性的方式依旧起效:  element.getAttribute(‘data-index’);
② H5新增方式:  element.dataset.index 或者 element.dataset[‘index’]    具有兼容性问题

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用[1]中的代码是一个Vue组件中的方法,用于刷新表格的列配置。该方法通过传入的参数val来更新表格的列配置。具体实现过程如下: 1. 首先,将loading状态设置为true,表示表格正在加载中。 2. 然后,将传入的val中的columns属性赋值给mixinGridOptions中的columns属性,实现列配置的更新。 3. 获取表格的引用名称tableRefName,并根据val中的columns属性筛选出需要隐藏的列和需要显示的列。 4. 使用$nextTick方法等待下一次DOM更新后,获取表格的所有列配置,并将其赋值给组件的columns属性。 5. 使用setTimeout方法延迟100毫秒执行以下操作: - 遍历所有的列配置,如果该列的title在需要隐藏的列中,则将该列的visible属性设置为false;如果该列的title在需要显示的列中,则将该列的visible属性设置为true。 - 调用refreshColumn方法刷新表格的列配置,使隐藏或显示的列生效。 - 调用mixin_saveTableData方法保存表格数据。 - 将loading状态设置为false,表示表格加载完成。 引用[2]中的代码是一个Vue组件中的mixinGridOptions属性,用于定义表格的列配置。该属性包含了表格的各个列的配置信息,如type、field、title等。 综上所述,vxe-grid自定义表头的实现可以通过以下步骤完成: 1. 在Vue组件中定义一个mixinGridOptions属性,用于配置表格的列信息。 2. 在需要的地方调用refreshColumn方法,传入新的列配置,实现表头的自定义

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值