我的问题:
为什么在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++;
}
谢谢!
答案 0 :(得分:1)
innerHTML
在浏览器之间不一定相同,特别是在节点之间的空格方面。
案例1:
<ul><li>Item</li></ul>
案例2:
<ul>
<li>Item</li>
</ul>
可能会给出不同的结果。
尝试.nodeValue
或先选择实际的文本节点并使用.textContent
/ .nodevalue