0

私の質問:

IE 8でこの条件が無視されるのはなぜですか?

if (dynCheck[0].innerHTML == 'Empty' || dynCheck[0].innerHTML == "")` {continue}

詳細:

リストアイテムの配列を別の配列に格納しているループがあります。最初のリストアイテムの値が「空」であるかどうかをチェックする条件がありますcontinue。何らかの理由で、IE8はこの条件を無視しています。値を保持している配列をチェックしていることが原因でしょうか?

ループ全体は次のとおりです。

for(var dynEl = 1; dynEl <= dynLists; dynEl++) {

        //Get Array of List Items
        var dynCheck = document.getElementById('loc' + dynEl).getElementsByTagName('li');

        //Check if it is empty or not
        if (dynCheck[0].innerHTML == 'Empty' || dynCheck[0].innerHTML == "") {continue}

        //If there is content then add it to the Array
        dynElArr[dynElIndx] = dynCheck;

        //Increment Index
        dynElIndx++;
}

ありがとうございました!

4

1 に答える 1

1

innerHTML特にノード間の空白に関しては、ブラウザ間で必ずしも同じではありません。

ケース1:

<ul><li>Item</li></ul>

ケース2:

<ul>
  <li>Item</li>
</ul>

異なる結果が得られる場合があります。

.nodeValue最初に実際のテキストノードを試すか選択して、 .textContent/を使用してください.nodevalue

于 2012-10-26T00:25:16.850 に答える