ERROR “Unexpected token H in JSON at position 0 at JSON.parse ()”

publicado por: Anonymous

He visto un código por CodePen, en concreto este: https://codepen.io/hi-im-si/pen/DHoup

Quiero retocarlo para incrustarlo en mi web. Resulta que los parametros del array se los pasa por html. Para una mejor “integración” me gustaría pasarlo al código javascript y quitar el código del html, de manera que según mis pocos conocimientos el código del bucle quedaría así:

var elements = ['Hola!','Soy Adri'];
for (var i=0; i<elements.length; i++) {
  var toRotate = elements[i];
  var period = 2000;
  if (toRotate) {
    new TxtType(elements[i], JSON.parse(toRotate), period);
  }

};

Pero!, en la consola me saca el error:

Uncaught SyntaxError: Unexpected token H in JSON at position 0
    at JSON.parse (<anonymous>)
    at HTMLDocument.<anonymous> (core.js:110)

No entiendo el por qué del error y mucho menos cómo solucionarlo.

Muchas gracias de antemano!

solución

Hay varios errores en el código que has puesto.

1.- El constructor de la funcion TxtType espera como primer parámetro un elemento del tipo nodo, es decir, un elemento html. Tu le estas pasando un string.

2.- Tal como dice Kiko_L, A JSON.parse no le puedes pasar un string simple.

El siguiente código funciona:


var elements = document.getElementsByClassName('typewrite');
var text = ['Hola!','Soy Adri'];
var period = 1000;
new TxtType(elements[0], text, period);

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *