Javascript - IE8忽略条件

时间:2012-10-26 00:21:09

标签: javascript for-loop continue

我的问题:

为什么在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++;
}

谢谢!

1 个答案:

答案 0 :(得分:1)

innerHTML在浏览器之间不一定相同,特别是在节点之间的空格方面。

案例1:

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

案例2:

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

可能会给出不同的结果。

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