1: 实现一个$attr(name, value) 遍历: name : 属性名 value: 代表属性值
代码实例如下:
<body>
<div id="AA" class="box clearfix"></div>
<div myIn="1"></div>
<div class="content box"></div>
<div name="BB"></div>
<div></div>
<div id="AA"></div>
<div myIn="1" class="clearfix"></div>
<div class="box2"></div>
<div myIn="2"></div>
<div name="BB"></div>
</body>
示例代码如下:
function $attr(property, value) {
// 获取当前页面中所有的标签
let elements = documents.getElementByTagName('*') // *代表通配符
arr = [];
// [].forEach.call(elements, item => {});
elements = Array.from(elemnets); // 把非数组转化为数组
elements.forEach( item => {
// itemValue 存储的是当前元素property 对应属性值
let itemValue = item.getAttribute(property);
if (property === 'class') {
// 如果样式类为 class 需要做特殊处理
new RegExp("\\b"+value+"\\b").test(itemValue) ? arr.push(item) : null;
return;
}
if(itemValue === value) {
// 获取的值和传递的值检验成功
arr.push(item);
}
})
return arr;
}
let ary = $attr('class', 'box');
// "content box".includes('box')
// true
如果对小伙伴有帮助, 请点赞加关注 !!!