2012-10-26 71 views
0

我的問題:Javascript - IE8忽略條件

爲什麼在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

你調試它與控制檯網上看到它是什麼?可能是空白字符。 – epascarello

+0

難道我們都只是喜歡Internet Explorer嗎? –

回答

1

innerHTML在瀏覽器之間不一定相同,特別是關於之間的空白節點。

案例1:

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

案例2:

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

可能會給出不同的結果。

嘗試.nodeValue或先選擇實際textnode和使用.textContent/.nodevalue

+0

這是一個空白問題。感謝你能這麼快回復!!! – Dandy