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>

案例二:

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

可能会给出不同的结果。

尝试.nodeValue或首先选择实际的文本节点并使用.textContent/.nodevalue

于 2012-10-26T00:25:16.850 回答