Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从select返回javascript错误_Javascript_Html_Arrays_Select - Fatal编程技术网

从select返回javascript错误

从select返回javascript错误,javascript,html,arrays,select,Javascript,Html,Arrays,Select,我不明白为什么如果我选择第二个选项“carne”,它会返回第一个选项的值 var nodoChiave; var nodoCerca; var nodoRisultato; var ricettario = [ { categoria: "primo", nome: "pasta", difficolta: "media", preparazione: 30 }, { categoria: "secondo", nome: "carne",

我不明白为什么如果我选择第二个选项“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;
var nodoChiave;
诺多塞卡变种;
nodoRisultato变种;
var ricettario=[
{
分类:“primo”,
诺姆:“意大利面”,
difficolta:“媒体”,
1:30
},
{
分类:“第二”,
诺姆:“卡恩”,
difficolta:“bassa”,
1:15
}
];
函数calcolaListaDescrizioni(ricette){
试一试{
var listaDescrizioni=[];
对于(变量i=0;i0){
nodo.removeChild(nodo.firstChild);
}
}
函数名为alizza(){
试一试{
nodoChiave=document.getElementById(“chiave”);
nodoCerca=document.getElementById(“cerca”);
nodoRisultato=document.getElementById(“risultato”);
nodoCerca.onclick=gestoreCerca;
}捕获(e){
警报(“阿里扎”+e);
}
}
window.onload=zza;
以及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,这肯定会很愚蠢,但请提前感谢您的回答。

因为在for循环中,您正在访问
ricettario
,而不是
ricette

换行

 var ricetta = ricettario[i];

var nodoChiave;
诺多塞卡变种;
nodoRisultato变种;
var ricettario=[
{
分类:“primo”,
诺姆:“意大利面”,
difficolta:“媒体”,
1:30
},
{
分类:“第二”,
诺姆:“卡恩”,
difficolta:“bassa”,
1:15
}
];
函数calcolaListaDescrizioni(ricette){
试一试{
var listaDescrizioni=[];
对于(变量i=0;i0){
nodo.removeChild(nodo.firstChild);
}
}
函数名为alizza(){
试一试{
nodoChiave=document.getElementById(“chiave”);
nodoCerca=document.getElementById(“cerca”);
nodoRisultato=document.getElementById(“risultato”);
nodoCerca.onclick=gestoreCerca;
}捕获(e){
警报(“阿里扎”+e);
}
}
window.onload=zza

勒米·里塞特:



因为在for循环中,您正在访问
ricettario
而不是
ricette

换行

 var ricetta = ricettario[i];

var nodoChiave;
诺多塞卡变种;
nodoRisultato变种;
var ricettario=[
{
分类:“primo”,
诺姆:“意大利面”,
difficolta:“媒体”,
1:30
},
{
分类:“第二”,
诺姆:“卡恩”,
difficolta:“bassa”,
1:15
}
];
函数calcolaListaDescrizioni(ricette){
试一试{
var listaDescrizioni=[];
对于(变量i=0;i