jQuery ottiene il valore da select, quindi cambia css di un div

Ho cercato di usare questo esempio ma per la vita di me non riesco a farlo funzionare.
Cambia lo sfondo di Div da select

Ogni input che mi aiuti a muoverti sarà molto apprezzato

 #changemybg { background: url(images/default.jpg) no-repeat 50% 50%; }  
bg bg1 bg2>

bg = background.jpg
bg1 = background1.jpg
bg2 = background2.jpg

Il modo in cui stavi memorizzando i mapping non era molto flessibile. Li ho archiviati come un object.

Se li hai nominati bg , bg2 , ecc, e non li hai bg2 , bg2 accedervi come window['bg' + i] che è disordinato.

 var bg = { 'bg': 'background.jpg', 'bg1': 'background1.jpg', 'bg2': 'background2.jpg' }; $('#backgrounds').change(function() { var background = $(this).find('option:selected').text(); if ( ! background in bg) { return; } $('#changemybg').css({ 'backgroundImage': 'url(' + bg[background] + ')' }); }); 

jsFiddle .

In alternativa, è ansible memorizzare il nome file nell’attributo value di ciascun elemento option e assegnare semplicemente backgroundImage a $(this).val() .

Inoltre, stai provando a impostare gli stili all’interno di un elemento di script . Quello non funzionerà; quello che vuoi è un elemento di style .

Prova sotto codice:

 $("#backgrounds").change(function() { var val = $(this).val(); $("#changemybg").css("background-image",val); }); 

e cambia la tua selezione in questo modo: