Manipola i valori personalizzati con jQuery

 

Ho un’immagine in cui ho bisogno di cambiare il valore del tipo di dati “U”. I dati “U” sono stati messi in atto da uno sviluppatore con cui sto lavorando, e devo essere in grado di usare jQuery per cambiarne il valore in un ciclo su una timeline specificata di ogni 15 secondi.

Riesco a capire la parte del ciclo, ma volevo solo vedere se c’è un modo per manipolare il valore “u” usando jQuery.

Provare

 setInterval(function(){ var val = $('#button4').attr('u').substring(6); $('#button4').attr('u', 'button' + (1 + +val)) }, 1000) 

Demo: Fiddle

Puoi cambiare l’attributo u (incidentalmente, se passi da u a data-u allora sarà un attributo valido , sotto HTML5):

 $('img').attr('u', function(i,u) { /* i is the index of the current image among all the images returned by the selector, u is the current value of that attribute */ return u.slice(0, -1) + (parseInt(u.replace(/\D/g,''), 10) + 1); }); 

Demo di JS Fiddle .

Anche se il modo in cui il nuovo valore dovrebbe essere influenzato, dal ciclo o da altre variabili, è sconosciuto a causa di informazioni limitate nella domanda stessa.

Per dimostrare come utilizzare gli attributi data-* che consentono agli attributi personalizzati di essere validi (in HTML5):

  

Con il seguente jQuery:

 $('img').attr('data-u', function (i, u) { return u.replace(/\d+$/,'') + (parseInt(u.replace(/\D/g, ''), 10) + 1); }); 

Demo di JS Fiddle .

Con riferimento alle risposte pubblicate in un’altra domanda ( Utilizzando una funzione per aggiornare un valore all’interno del metodo data () di jQuery imposta la variabile equivalente alla funzione anonima, non il valore restituito ), il metodo data() non accetta una funzione come callback, come attr() , ed è per questo che ho usato il .attr('data-u', function(){/*...*/}) piuttosto che il metodo data() stesso (anche se ho provato quel primo, che non ha funzionato).

Riferimenti:

  • attr() .
  • parseInt() .
  • Espressioni regolari (Mozilla Developer Network)
  • JavaScript Regular Expressions (tutorial di Tech Pro) .
  • String.replace() .

come questo:

 $("#button4").attr("u", "new value");