jQuery: la conversione di tipo effettuata dal metodo .data()

Short link

In jQuery il metodo usato per gestire gli attributi di dati ha una caratteristica che può provocare effetti collaterali non voluti.

Il metodo .data() effettua una conversione di tipo se rileva una compatibilità tra il valore usato e uno dei tipi di dati primitivi JavaScript. Ad esempio, data la seguente marcatura:


<div id="test" data-id="2876"></div>

Avremo:


var id = $( "#test" ).data( "id" );

console.log( typeof id ); // number

Se usiamo JSON come formato di scambio per le richieste AJAX, questa caratteristica può creare non pochi problemi di compatibilità. La soluzione:


var id = $( "#test" ).data( "id" ).toString();

console.log( typeof id ); // string

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.