2014-04-01 138 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