/ / Cambia lo sfondo dell'ultima voce di un array: javascript, jquery, array, colori

Cambia lo sfondo fino all'ultima voce in un array: javascript, jquery, matrici, colori

Sto facendo un semplice codice jQuery che ne contiene unomodulo di testo e due pulsanti. L'idea è che dovrei essere in grado di inserire un colore o colore rgb nel modulo di testo, quindi premere il pulsante "Aggiungi colore" per aggiungerlo a un array, quindi premere il pulsante "Cambia colore" per cambiare il colore di sfondo con quello Ho appena aggiunto.

La mia domanda riguarda la funzione associata al pulsante Cambia colore, come faccio a legarla per cambiarla con il colore che ho appena aggiunto?

Ora quando uso Math.random (), ovviamente, sceglie un colore casuale dall'array. Ho provato a leggere sul modulo Math ma non riesco a trovare qualcosa come Math.latest () (spiegazione sbagliata, ma penso di aver coperto ciò di cui ho bisogno di aiuto)

$( document ).ready(function() {

var color = ["green", "orange", "yellow"];

jQuery("#changeBG").click(randomBackground);

jQuery("#addColor").click(function(){
color.push($("#addToList").val());
$("#sampleBoard > tbody:last").append("<tr><td>",$("#addToList").val(),"</td><td><div id="sample" style="border:solid 1px                                         black;width:18px;height:18px;background:"+$("#addToList").val()+""></div></td></tr>");
});


function randomBackground(){
jQuery("body").css({"background-color": color[Math.floor(Math.random() * color.length)]});
}

Grazie!

risposte:

0 per risposta № 1

L'ultimo elemento dell'array è "alla fine" perché push() lo aggiunge lì. Puoi farcela

var latestColor = color[color.length - 1];

Ricorda: gli indici sono a base zero, quindi un array con lunghezza l ha il suo ultimo elemento all'indice l - 1.


0 per risposta № 2

var newcolor = color [Math.floor (Math.random ()% color.length)]}}

Usa l'operatore "%"

questo ti darà un indice di colore casuale

Spero che funzioni