【问题标题】:Too many alerts generated in for loopfor循环中生成的警报过多
【发布时间】:2014-11-12 08:21:25
【问题描述】:

我正在尝试删除 json 酒单的酒,如果 json 文件中不存在酒,我想发出警报。但是列表中的每个 i 都会弹出警报。在 if 语句转到 else 之前,想不出一种方法来完成它。

function slettVin(){
    var slettInput = document.getElementById('slettInput');
    var slettInput_v = slettInput.value;
    for(wine=0; wine<dataHent.wines.length; wine++){
        if (dataHent.wines[wine].catalog == slettInput_v){
            dataHent.wines.splice(wine,1);
            var request = new XMLHttpRequest();
            request.open("POST","writeWine.php",false);
            request.setRequestHeader('Content-type','application/x-www-form-urlencoded');
            request.send("wines="+JSON.stringify(dataHent));
            fjernDiv();
            spesieltValg();
            slettInput.value ='';
            break;
        }
        else {
            alert('This wine doesnt exist');
        }
    }
}

【问题讨论】:

    标签: javascript json for-loop


    【解决方案1】:

    在您完成整个循环之前,您无法判断葡萄酒是否不存在。使用变量来判断您是否找到了酒。

    var dataHent = {
      wines: [{
        catalog: "aaa"
      }, {
        catalog: "bbb"
      }, {
        catalog: "ccc"
      }]
    };
    
    function slettVin() {
      var slettInput = document.getElementById('slettInput');
      var slettInput_v = slettInput.value;
      var wine_found = false;
      for (wine = 0; wine < dataHent.wines.length; wine++) {
        if (dataHent.wines[wine].catalog == slettInput_v) {
          dataHent.wines.splice(wine, 1);
          alert("Wine found, sending AJAX");
          slettInput.value = '';
          wine_found = true;
          break;
        }
      }
      if (!wine_found) {
        alert('This wine doesnt exist');
      }
    }
    <input id="slettInput" type="text">
    <button onclick="slettVin()">Click</button>

    【讨论】:

    • 对不起 Barmar,但它不起作用。我也想过标记。不断弹出。感谢您的时间!
    • 我错过了},这有帮助吗?
    • 我刚刚测试了我的代码,它可以工作。如果您输入“aaa”,则提示找到,如果您输入 zzz,则提示不存在。
    • 杰普它正在工作。谢谢你的时间 m8。而且我不明白为什么标记不起作用!!!
    猜你喜欢
    • 2021-02-09
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2021-04-11
    • 1970-01-01
    相关资源
    最近更新 更多