JavaScript WebAPI 系列二 排他思想;自定义属性(包括h5新增的data-);父、子、兄弟节点;创建、添加、删除、复制节点

本文详细介绍了JavaScript中操作元素的排他思想,包括如何使用自定义属性(尤其是H5的data-属性)以及父、子、兄弟节点的操作。此外,还深入探讨了创建、添加、删除和复制节点的JavaScript方法,通过具体案例如tab栏切换和动态创建留言,阐述了这些概念的实际应用。
摘要由CSDN通过智能技术生成

1.0 操作元素–排他思想

如果有同一组元素,我们想要某一个元素实现某种样式, 需要用到循环的排他思想算法:

  1. 所有元素全部清除样式(干掉其他人)
  2. 给当前元素设置样式 (留下我自己)
  3. 注意顺序不能颠倒,首先干掉其他人,再设置自己
        // 1. 获取所以按钮元素
        var btns = document.getElementsByTagName('button');
        //  btns 得到的是伪数组 里面的每一个元素 btns[i]
        for (var i = 0; i < btns.length; i++) {
   
            btns[i].onclick = function() {
   
                // 1. 我们先把所以的按钮背景颜色去掉,    干掉所有人
                for (var j = 0; j < btns.length; j++) {
   
                    btns[j].style.backgroundColor = 'white';
                };
                // 2. 然后才让当前的元素背景颜色为pink , 留下我自己
                this.style.backgroundColor = 'pink';
            }
        }
		案例一:案例:百度换肤
		var imgs = document.querySelector('.baidu').querySelectorAll('img');
        for (var i = 0; i < imgs.length; i++) {
   
            imgs[i].onclick = function() {
   
                document.body.style.backgroundImage = 'url(' + this.src + ')';
            }
        }

		案例二:案例:表格隔行变色
		1.获取元素 获取的是 tbody 里面所有的行
        var trs = document.querySelector('.bodys').querySelectorAll('tr');
        2. 利用循环绑定注册事件
        for (var i = 0; i < trs.length; i++) {
   
            // 3. 鼠标经过事件 onmouseover
            trs[i].onmouseenter = function() {
   
                    this.className = 'bg';
                }
                // 4. 鼠标离开事件 onmouseout
            trs[i].onmouseout = function() {
   
                this.className = '';
            }
        }
		
		案例三:案例:表单全选取消全选案例
		var inputAll = document.querySelector('#j_cbAll');
        var input = document.querySelector('#j_tb').querySelectorAll('input');
        1. 让下面所以复选框的checked属性 跟随 全选按钮
        inputAll.onclick = function() {
   
                // this.checked  他可以得到当前复选框的选中状态 如果是 true 就是选中, false 就是未选中
                for (var i = 0; i < input.length; i++) {
   
                    input[i].checked = this.checked;
                }
            }
        2. 下面复选框需要全部选中, 上面全选才能选中的做法:给下面所以复选框绑定点击事件,每次点击都要循环。
        for (var i = 0; i < input.length; i++) {
   
            input[i].onclick = function() {
   
                // 添加一个变量 flag  控制全选按钮是否选中
                var flag = true;
                // 每次点击下面的复选框都要循环检查 4个 小按钮是否被选中
                for (var i = 0; i < input.length; i++) {
   
                    if (!input[i].checked) {
   
                        flag = false;
                        break; // 退出for循环 这样可以提高执行效率,因为只要有了一个没有被选中,flag = false ; 剩下的就可以不要再运行了
                    }
                }
                inputAll.checked = flag;
            }
        }

1.1 自定义属性的操作

1.获取属性值:

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

2.设置属性值:

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

3.移除属性:

  1. element.removeAttribute(‘属性’);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值