原生js:使用map处理getElementsByTagName返回值,并且操作dom时使“感叹号important“生效

为什么document.getElementsByTagName返回的值无法使用数组方法map,因为

getElementsByTagName返回的是一个类数组对象NodeList

类js数组无法直接使用数组的方法map,需要通过Array.from转换成js数组。

【不知出于何种原因】无法直接Array.from(document.getElementsByTagName('img'));

需要拆分成两步

例子:

    let a = document.getElementsByTagName('img');
    let all_img_dom = Array.from(a);

    all_img_dom.map(item=>{
     item.setAttribute('style', 'display:none!important')
    })

如果直接使用Element.style.display = "none!important"则后面的!important是不会生效的,所以需要使用setAttribute


20220113更新

当时不知道“类数组”,因此用了Array.from,原来我以前还有这么一篇博文。

let a = { "0"  : "值1", "1" : "值2"}这样的“长得像数组的”obj,可以通使用Object.values(a).map来对每一个value进行遍历

MDN关于Object.values()的介绍

你可能感兴趣的:(前端相关,javascript,前端,html)