Can I select multiple tags using getElementsByTagName?

biddybump picture biddybump · Jan 17, 2014 · Viewed 47.3k times · Source

I'm using a javascript snippet in order for visitors to my site to increase the font size on all paragraphs using the following javascript:

function increaseFontSize() {  

    var paragraphs = document.getElementsByTagName('p'); 

    for(i=0;i<paragraphs.length;i++) {   

        if(paragraphs[i].style.fontSize) { 
            var s = parseInt(paragraphs[i].style.fontSize.replace("px",""));
        } else {   
            var s = 14;
        }

        if(s != max) {  
            s += 1; 
        } 
        paragraphs[i].style.fontSize = s+"px"
    } 
} 

How can I also include "li" to this code so that "p" and "li" are the selected elements that are affected?

I would also like to avoid adding a class or an id to my "li" or "ul". Is there a way to select two tags at once?

Answer

Daniel Imms picture Daniel Imms · Jan 17, 2014

No, you can't select multiple tags with a single call to getElementsByTagName. You can either do two queries using getElementsByTagName or use querySelectorAll.

JSFiddle

var elems = document.querySelectorAll('p,li')