两者皆为-否则为真

时间:2018-11-14 15:30:10

标签: javascript

已编辑(HTML CODE) 我的if-else语句出现问题(我的代码尚未完成)

修改后的v2:

对不起,我今天很忙,所以我要澄清我的问题:当在框中键入内容时,我有3条if语句,“ 1st和3rd if”运行, 删除框中的文本时运行“第二个条件”,

并且因为我们已经有“ if语句”作为空白框(第二个if),所以这意味着我们可能会发生2种情况:用户键入类似于“ countries”数组 例如:A代表阿尔巴尼亚,V代表越南等... 而另一种情况是,用户在“国家”数组中输入的内容与任何国家/地区都不相同:例如Z(没有国家以Z开头)

所以问题在于,为什么同时发生2种情况(如果为1则发生第三例)

关于错误“未捕获的TypeError:无法读取null的属性'parentNode'”,我可以修复它吗?

这是我的HTML代码

<div class="test">
    <form id="myInput">
        <input autocomplete="off" type="text" name="myCountry" placeholder="Country">
    </form>
    <button style="padding-top:100px;" id="DCM">abc</button>
    </div>

var countries = ["Albania","VietNam","Thai","Han","Lao"];

countries.map(function(x){ return x.toUpperCase() })

var searchinput = document.querySelector('#myInput input');

searchinput.addEventListener('keyup',function(e){

var searchChar = e.target.value.toUpperCase();
var parent = e.target.parentNode;
var c = document.createElement("div");
var a = document.createElement("div");
a.setAttribute("id", "autocomplete-list");
a.setAttribute("class", "autocomplete-items");
c.appendChild(a);
parent.appendChild(c);

for (var i = 0; i < countries.length; i++) {
    if (countries[i].substr(0,searchChar.length).toUpperCase() == searchChar ) {
        var b = document.createElement("div");
        b.innerHTML = "<strong>" + countries[i].substr(0, searchChar.length) + "</strong>";
        b.innerHTML += countries[i].substr(searchChar.length);
        a.appendChild(b);   
    }
    if(searchChar.length == 0)  {
        var y = document.getElementById("autocomplete-list");
        y.parentNode.remove();
    }
    else{
        console.log("He");
    }
}

这段代码是关于自动完成的,当我在搜索栏中没有输入任何内容时,它将运行“ 2nd if”,它可以正常工作,但返回错误“ Uncaught TypeError:无法读取null的'parentNode'属性”

我的代码中还有1个问题,如果我键入内容,它将运行“ 1st if”或“ 3rd if”,因为在“ 1st if”中它​​具有条件,而“ 3rd if”是else,但是当我键入时某物,它们一起运行,除了“第二个条件”

对不起,我的英语不好,我不擅长写作

1 个答案:

答案 0 :(得分:1)

您的问题不清楚。如果只希望三个if中的一个发生,则应该执行String s = "AYLAKPHKKDIV"; List<String> arr = new ArrayList<String>(); Matcher m = Pattern.compile(".{3,}?[KR](?!P)(?=.{4})|.+$").matcher(s); while(m.find()) { arr.add(m.group()); } ,因为您的代码未找到ID为autocomplete-list的元素,因此您将获得Cannot read property'parentNode'of null”。看到HTML,我们无法告诉您为什么会这样。Tyler Roper