【问题标题】:How do I compare HTML text with strings out of an array in an if/else statement?如何在 if/else 语句中将 HTML 文本与数组中的字符串进行比较?
【发布时间】:2018-08-28 06:32:44
【问题描述】:

这个测验中的用户可以选择一个名字:

<p>Wie is jouw allergrootste vijand</p>
<input type="radio" name="vijand" value="Loki" class="vijand"> Loki
<input type="radio" name="vijand" value="Joker" class="vijand"> Joker
<input type="radio" name="vijand" value="Two Face" class="vijand"> Two Face
<input type="radio" name="vijand" value="Red Skull" class="vijand"> Red Skull
<input type="radio" name="vijand" value="Thanos" class="vijand"> Thanos
<input type="radio" name="vijand" value="Killmonger" class="vijand"> Killmonger
<input type="radio" name="vijand" value="Black Adam" class="vijand"> Black Adam
<input type="radio" name="vijand" value="Hela" class="vijand"> Hela

我想将此与数组中的名称进行比较。我的想法是使用索引号进行比较,所以我尝试使用.indexOf(),但他的不起作用。

function vijand(){
    var vijanden = ['Loki', 'Joker', 'Two Face', 'Red Skull', 'Thanos', 'Killmonger', 'Black Adam', 'Hela'];
    var keuze = document.getElementsByClassName('vijand').value;
    var vijandNummer;

    //De eerste 4 uit de array
    if ( keuze === vijanden.indexOf(0,1,2,3)) {
        vijandNummer = 1;
    }    
    else if (keuze === vijanden.indexOf(4,5,6,7) ) {
        vijandNummer = 0;
    }

    return vijandNummer;
}

我做错了什么?

【问题讨论】:

标签: javascript html arrays string indexof


【解决方案1】:
function vijand(){
    var vijanden = ['Loki', 'Joker', 'Two Face', 'Red Skull', 'Thanos', 'Killmonger', 'Black Adam', 'Hela'];
    var vijandNummer;

    var vijandenValue = document.querySelector('input[name=vijand][checked]').value;

    if(['Loki', 'Joker', 'Two Face', 'Red Skull'].indexOf(vijandValue) !== -1) {
        vijandNummer = 1
    }

    if(['Thanos', 'Killmonger', 'Black Adam', 'Hela'].indexOf(vijandValue) !== -1) {
        vijandNummer = 0
    }

    return vijandNummer;
}

【讨论】:

    【解决方案2】:

    您以错误的方式使用indexOf。你想要:

    var index = vijanden.indexOf(keuze); // for keuze = 'Hela', index = 7
    

    然后:

    vijandNummer = index < 4 ? 1 : 0;
    

    假设,根据您的代码,如果选择了前四个英雄中的任何一个,vijandNummer 必须为 1,否则为 0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      • 1970-01-01
      • 2016-01-29
      • 2018-10-15
      • 1970-01-01
      相关资源
      最近更新 更多