无法从集合中获取价值(使用GetElementsByClassName)

时间:2019-04-28 13:43:28

标签: javascript html

我试图显示一个从集合中获取其值的输出。

这是代码。 对于显示两次的'schnapps',我设法获得了想要的输出。 但是对于'potato',我无法显示输出。

    <tr>
        <td>Schnapps Distillery</td>
        <td class='inputText schnapps'></td>
        <td>600 Farmers & Workers</td>
    </tr>
    <tr>
        <td colspan="3">
            <div class='inline'>
            <div class='inline potato'></div><img class='smallLogos'
                src='../images/potato.png' /> -->
            <div class='inline schnapps'></div><img class='smallLogos'
                src='../images/schnapps.png' />
            </div>
        </td>
    </tr>
schnappsElement = document.getElementsByClassName("schnapps");
potatoElement = document.getElementsByClassName("potato");

    //schnapps
    for (i = 0; schnappsElement[i] != null; i++) {
        schnappsElement[i].innerHTML = Math.ceil((Number(farmInput.value) + Number(workInput.value)) / 600);
    }

    potatoElement.innerHTML = schnappsElement[0].value;

JS中的两个命令都由我未包含的侦听器命令激活。 该命令起作用是因为我为Schnapps获得了正确的输出。

我想要的是让potatoElement具有(并显示)与schnappsElement相同的值。

1 个答案:

答案 0 :(得分:0)

schnappsElement[0]没有.value()。请改用.innerHTML

此外,potatoElement是一个数组-您需要将其用作potatoElement[0]

schnappsElement = document.getElementsByClassName("schnapps");
potatoElement = document.getElementsByClassName("potato");

    //schnapps
    for (i = 0; schnappsElement[i] != null; i++) {
        schnappsElement[i].innerHTML = Math.ceil((Number(farmInput.value) + Number(workInput.value)) / 600);
    }

    potatoElement[0].innerHTML = schnappsElement[0].innerHTML;

或者您可以将它们都包含在循环中

schnappsElement = document.getElementsByClassName("schnapps");
potatoElement = document.getElementsByClassName("potato");

    //schnapps
    for (i = 0; schnappsElement[i] != null; i++) {
        var value = Math.ceil((Number(farmInput.value) + Number(workInput.value)) / 600);
        schnappsElement[i].innerHTML = value;
        if (potatoElement[i]) { potatoElement[i].innerHTML = value }
    };