实现一个 $attr(name,value)遍历 获取对应的元素集合

实现一个 $attr(name,value)遍历 * 属性位name * 值为value的元素集合 * */

html

<ul>
    <li id="AA" class="box clearFix">1</li>
    <li name="con" class="content box">2</li>
    <li name="BB">3</li>
    <li id="AA">4</li>
    <li class="clearFix" name="con">5</li>
    <li myli="six">6</li>
    <li name="BB" id="AA">7</li>
    <li class="  clearFix">8</li>
    <li myli="six">9</li>
    <li myli="six" class="box">10</li>
  </ul>

js

// 窗口加载完成执行函数
 window.onload = function () {
      function $attr(name, value) {
        let art = [],
          elements = document.getElementsByTagName('*'); // 获取html中所有标签

        Array.from(elements).forEach(item => {    // 将获取到的元素集合转成数组格式遍历循环
          let itemValue = item.getAttribute(name) // 获取到元素上的属性值
          if (name === 'class') {                 // 如果查询class特殊处理
            let reg = new RegExp(`\\b${value}\\b`)
            if (reg.test(itemValue)) { 			  // 处理 class="content box" 与 class="contentbox" 的情况
              art.push(item)
            }
            return;
          }
          if (itemValue === value) {            
            art.push(item)
          }
        })
        return art
      }

      console.log($attr('id', 'AA'))
    }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值