I have this HTML canvas snow script that I'm trying to get working on my site. I'm trying to get the script to work on every canvas element with the class canvas-snow. So when I changed document.getElementById to document.querySelectorAll the script breaks.
My HTML:
<a class="featured-image-link"></a>
<canvas id="canvas-1" class="canvas-snow">
</canvas>
<a class="featured-image-link"></a>
<canvas id="canvas-2" class="canvas-snow">
</canvas>
<a class="featured-image-link"></a>
<canvas id="canvas-3" class="canvas-snow">
</canvas>
My CSS:
.featured-image-link {
  display: block;
  height: 200px;
  width: 200px;
  background: #666;
}
 body {
  background: #000;
}
My Script:
$( document ).ready(function() {
var canvas = document.querySelectorAll("canvas-snow");
var ctx = canvas.getContext("2d");
var particlesOnScreen = 245;
var particlesArray = [];
var el = document.querySelector(".featured-image-link");
var w,h;
w = canvas.width = el.clientWidth;
h = canvas.height = el.clientHeight;
function random(min, max) {
    return min + Math.random() * (max - min + 1);
};
function clientResize(ev){
    w = canvas.width = el.clientWidth;
    h = canvas.height = el.clientHeight;
};
window.addEventListener("resize", clientResize);
function createSnowFlakes() {
    for(var i = 0; i < particlesOnScreen; i++){
        particlesArray.push({
            x: Math.random() * w,  
            y: Math.random() * h,  
            opacity: Math.random(),  
            speedX: random(-11, 11),  
            speedY: random(7, 15),    
            radius:random(0.5, 4.2),
        })
    }
};
function drawSnowFlakes(){
    for(var i = 0; i < particlesArray.length; i++){    
        var gradient = ctx.createRadialGradient(  
            particlesArray[i].x,   
            particlesArray[i].y,   
            0,                     
            particlesArray[i].x,   
            particlesArray[i].y,   
            particlesArray[i].radius  
            );
            gradient.addColorStop(0, "rgba(255, 255, 255," + particlesArray[i].opacity + ")");  // white
            gradient.addColorStop(.8, "rgba(210, 236, 242," + particlesArray[i].opacity + ")");  // bluish
            gradient.addColorStop(1, "rgba(237, 247, 249," + particlesArray[i].opacity + ")");   // lighter bluish
            ctx.beginPath(); 
            ctx.arc(
            particlesArray[i].x,  
            particlesArray[i].y,  
            particlesArray[i].radius,  
            0,                         
            Math.PI*2,                 
            false                     
            );
        ctx.fillStyle = gradient;   
        ctx.fill();                 
    }
};
function moveSnowFlakes(){
    for (var i = 0; i < particlesArray.length; i++) {
        particlesArray[i].x += particlesArray[i].speedX;     
        particlesArray[i].y += particlesArray[i].speedY;     
        if (particlesArray[i].y > h) {                                                                               
            particlesArray[i].x = Math.random() * w * 1.5;
            particlesArray[i].y = -50;
        }
    }
};
function updateSnowFall  () {
    ctx.clearRect(0, 0, w, h);
    drawSnowFlakes();
    moveSnowFlakes();
};
setInterval(updateSnowFall,50);
createSnowFlakes();
});
How do I get this to work?
 
    