【发布时间】:2017-06-15 10:36:57
【问题描述】:
我不明白为什么如果我选择第二个选项“carne”,它会返回第一个选项的值。
var nodoChiave;
var nodoCerca;
var nodoRisultato;
var ricettario = [
{
categoria: "primo",
nome: "pasta",
difficolta: "media",
preparazione: 30
},
{
categoria: "secondo",
nome: "carne",
difficolta: "bassa",
preparazione: 15
}
];
function calcolaListaDescrizioni(ricette) {
try {
var listaDescrizioni = [];
for (var i = 0; i < ricette.length; i++) {
var ricetta = ricettario[i];
var s = "(" + ricetta.categoria + ") " + ricetta.nome + ", difficolta " + ricetta.difficolta + ", minuti di preparazione " + ricetta.preparazione;
listaDescrizioni.push(s);
}
return listaDescrizioni;
} catch (e) {
alert("calcolaListaDescrizioni" + e);
}
}
function gestoreCerca() {
try {
var chiave = nodoChiave.value;
var ricette = ricercaEsatta(chiave);
var listaDescrizioni;
if (ricette.length != 0) {
listaDescrizioni = calcolaListaDescrizioni(ricette);
} else {
listaDescrizioni = ["nessuna ricetta trovata"];
}
creaLista(nodoRisultato, listaDescrizioni);
} catch(e) {
alert("gestoreCerca" + e);
}
}
function ricercaEsatta(chiave) {
var listaRicette = [];
var i = 0;
while( (i < ricettario.length) && (ricettario[i].nome != chiave)) {
i++;
}
if (i < ricettario.length) {
listaRicette.push(ricettario[i]);
}
console.log(listaRicette) ;
return listaRicette;
}
function creaLista(nodoLista, elementi) {
rimuoviFigli(nodoLista);
for (var i = 0; i< elementi.length; i++) {
var elemento = elementi[i];
var nodoElemento = document.createElement("li");
nodoLista.appendChild(nodoElemento);
var nodoTesto = document.createTextNode(elemento);
nodoElemento.appendChild(nodoTesto);
}
}
function rimuoviFigli(nodo) {
while (nodo.childNodes.length > 0) {
nodo.removeChild(nodo.firstChild);
}
}
function inizializza(){
try {
nodoChiave = document.getElementById("chiave");
nodoCerca = document.getElementById("cerca");
nodoRisultato = document.getElementById("risultato");
nodoCerca.onclick = gestoreCerca;
} catch(e) {
alert("inizializza" + e);
}
}
window.onload = inizializza;
和html:
<body>
<b> Le mie ricette: </b>
<input type="text" id="chiave">
<input type="button" id="cerca" value="Cerca">
<br>
<br>
<div id="risultato"></div>
</body>
</html>
如果我搜索数组中不存在的东西,它会起作用。 并且,当我选择第二个选项时,ricercaMultipla() 的 console.log() 返回数组“ricettario”的正确项目。 我正在学习javascript,肯定会很愚蠢,但提前感谢您的回答。
【问题讨论】:
标签: javascript html arrays select