1
In the font shown below, logic fails to capture the click on the element of select
returning only the first option
, and from the looks of it is an index problem - selectedIndex
.
Observe:
function selecionar(link) {
<!-- aqui chamamos as duas divs no nosso html: descricao -->
var element1 = document.getElementById("poster");
var element2 = document.getElementById("titulo");
<!-- ISSO DEVERIA FUNCIONAR CONFORME PRETENDIA - jogar o conteúdo do texto dentro do controle da condição para ser comparado sem repetição. Infelizmente ainda há problema -->
var el = document.getElementById("lista")
var opt = el.options[el.selectedIndex].text;
<!-- A rotina abaixo, faz o trabalho de capturar só a string após a última barra invertida "/" -->
var urlcomp = link;
var tamurl = urlcomp.length;
for (var i = tamurl; i >= 0; i--) {
if (urlcomp.substring(i, i - 1) == '/') {
var antes = i;
var depois = urlcomp.substring(antes, tamurl);
break;
}
}
<!-- Daqui em diante, o controle de fluxo 'if' nos dirá o qual informação deve ser apresentada através do que o usuário escolheu -->
if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/big_buck_bunny.jpg' width='126' height='90'>";
element2.innerHTML = "<p>big buck bunny</p>";
} else if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/madagascar_2.jpg' width='126' height='90'>";
element2.innerHTML = "<p>madagascar 2</p>";
} else if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/procurando_dory.jpg' width='126' height='90'>";
element2.innerHTML = "<p>procurando dory</p>";
} else if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/meu_malvado_favorito_2.jpg' width='126' height='90'>";
element2.innerHTML = "<p>meu malvado favorito 2</p>";
}
}
select { color: red; }
<select id="lista" onchange="selecionar(this.options[this.selectedIndex].value)">
<option value="" selected="selected"></option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/big_buck_bunny">big_buck_bunny</option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/madagascar_2">madagascar_2</option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/procurando_dory">procurando_dory</option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/meu_malvado_favorito_2">meu_malvado_favorito_2</option>
</select>
<br><br>
<p id="poster"></p>
<p id="titulo"></p>
I see that something else is missing to instruct the code.
I THINK - Scroll through items and point at variable
opt
which was selected inoption
.
Because I want to make use of variable which is much more practical and elegant. Kind of like:
var el = document.getElementById("lista")
var opt = el.options[el.selectedIndex].text;
if (depois == opt) {
...
} else if (depois == opt) {
...
} else if (depois == opt) {
...
} else if (depois == opt) {
...
}
}
And avoid filling in manulamente:
if (depois == 'big_buck_bunny') {
...
} else if (depois == 'madagascar_2') {
...
} else if (depois == 'procurando_dory') {
...
} else if (depois == 'meu_malvado_favorito_2') {
...
}
}
it wouldn’t be simpler to just pass the element:
onchange(selecionar(this))
and in the Function select pick up the value:var valor=link.value
?– Ricardo Pontual