El navegador dice que this.getAttribute no es una función. He visto una publicación similar en Stack, se le dijo al OP que enviara esto a la función, pero no funciona para mí. Aquí está el fragmento:
function reveal() { this.src = "img/" + this.getAttribute("data-value") + ".png"; } function display_cards(cards, n) { for (i = 0; i < cards.length; i++) { if (i % n == 0) { document.getElementById("container").innerHTML += '<br/>'; } document.getElementById("container").innerHTML += '<img src="img/back.png" class="card" onclick="reveal(this)" data-value="'+cards[i]+'"/>'; } }Obtenga this en función como un parámetro entrante: function reveal(img) , por ejemplo.
const cards = ["linear-flat-wedding-monograms_52683-64319", "flat-car-poster-with-photo-horizontal_52683-64510", "gradient-grainy-gradient-shapes_23-2148975080"]; display_cards(cards,3) function reveal(img) { img.src = "https://image.freepik.com/free-vector/" + img.getAttribute("data-value") + ".jpg"; } function display_cards(cards, n) { for (i = 0; i < cards.length; i++) { if (i % n == 0) { document.getElementById("container").innerHTML += '<br/>'; } document.getElementById("container").innerHTML += '<img src="https://image.freepik.com/free-vector/gradient-grainy-gradient-shape-set_23-2148971570.jpg" class="card" onclick="reveal(this)" data-value="'+cards[i]+'"/>'; } } <div id="container"></div>