2011-08-22 15 views
11

Nel codice sulla riga contrassegnata come // Errore nei commenti. Ottengo l'errore Javascript dicendo: "Impossibile leggere lo stile di proprietà di 'null'". Non ho idea di cosa non sia in grado di trovare l'oggetto. Ho pensato e provato tutto. Per favore aiuto. Ecco il codice:document.getElementbyId() restituisce null

<script type="text/javascript"> 

    $.getJSON('https://graph.facebook.com/647045111?fields=first_name&<%= Session["Token"] %>', 

    function (data) { 
     $('#userName').html(data.first_name); 
    }); 

    document.getElementById('connectedUnregistered').style.display = 'block'; //Error 

</script> 

    <div id="userName"></div> 

    <div id="disconnected" style="display:block;"> 

    <div id="heading">Facebook login</div> 

    <a href="Account/FacebookLogin" id="loginButton"><div id="fbConnectButton"><img src="/Content/Images/fbconnect.png"/></div></a>  

    </div> 

    <div id="connectedUnregistered" style="display:none"> 

    <div id="heading">Register Now</div> 



    </div> 

risposta

20

si sta eseguendo il codice JavaScript prima della <div id="connectedUnregistered" /> è stato effettivamente creato.

Si noti inoltre che non è stato chiuso il numero con un numero corrispondente </div>.

Quindi sposta il codice javascript in una parte sotto il codice HTML. O eseguirlo dopo il caricamento della pagina. Se stai usando JQuery puoi fare:

2

inserire lo script alla fine del documento HTML invece che all'inizio, e vedere se questo risolve le cose.

JavaScript non può modificare l'elemento DOM perché non è stato ancora creato.

0

Lo script sta cercando di ottenere l'elemento prima che l'elemento sia caricato. Posiziona lo script dopo l'elemento o mettilo in un evento carico o pronto.

3

Forse provare a posizionare questo codice in una

$(document).ready(function(){ 

//Code 

}); 

blocco

0

Il codice esegue prima dell'elemento creata. Dal momento che si sta utilizzando jQuery, basta avvolgerlo in document.ready:

$(function(){ 
    // code goes here 
}); 

Questo eseguirà dopo la creazione del DOM.

0

Il codice javascript è in esecuzione prima che il DOM sia completamente disponibile e la chiamata non riesce. Provate il seguente invece

$(document).ready(function() { 
    document.getElementById('connectedUnregistered').style.display = 'block'; //Error 
} 
0

Questo errore potrebbe anche indicare che l'elemento non ha un ID.

<input type="text" name="myelem" /> 

Assicurati che il tuo elemento abbia un ID.

<input type="text" name="myelem" id="myelem" /> 
0

nel mio caso è stato a causa di avere questa linea all'inizio del jsp/html (qualunque cosa) File:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

rimuoverlo risolto il problema per me (non mi ricordo cosa al primo posto nella mia pagina)

1

Inoltre, se in alcune parti del codice si utilizza document.write è molto comune ottenere null.

+1

document.write era il mio problema - grazie! – DavidJ

Problemi correlati