2014-04-01 183 views
-1

這是我的問題。下面的代碼是一個簡化版本來指出奇怪的錯誤。innerHTML字符串不等於在JavaScript中相同的字符串?

<html> 
    <head> 
    <script type = "text/javascript"> 
    window.onload = function test() 
    { 
    body = document.getElementsByTagName('body')[0]; 
    div = document.createElement('div'); 
    div.id = 'div'; 
       body.appendChild(div); 
       document.getElementById('div').innerHTML = "text"; 
       if(document.getElementById('div').childNodes[0] == "text") 
        { 
         alert('true'); 
        }else { 
         alert('false'); 
        } 
       } 
</script> 
<style> 
</style> 
</head> 
<body> 
</body> 

爲什麼它是假的?它幾乎是同一個確切的字符串。它是否是 .innerHTML的一部分?任何與此問題相關的答案都會有所幫助。這是深夜,我很生氣和困惑。

+0

可能有一些空間的問題! – Saqib

+0

childNodes [0] .textContent? – Sebas

+0

嘗試childNodes [0] .data或值 – kennebec

回答

1

您可以比較的子節點的nodeValue因爲不是childNodes返回一個對象:

if (document.getElementById('div').childNodes[0].nodeValue == "text") 
+0

非常感謝,只是想知道究竟是什麼導致了上述問題? – Brendan

+0

'childNodes'返回一個對象。您無法將對象與字符串文字進行比較。 – Felix