原生js:使用map處理getElementsByTagName返回值,並且操作dom時使“!important“生效

獨傲的野狼發表於2020-09-27

為什麼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

相關文章