2017-05-26 1 views
0

Meine local null zurück, und ich weiß nicht, warum, die Lesefunktion nicht verwendet wird, sondern nur für die Hilfe, die ich es trotzdem setzen. Chrome sagt, dass es innerHTML nicht auf null setzen kann, und meine Troubleshooting-Alert-Info gibt auch null zurück, aber der Code geht an das Ende. Jede Hilfe wäre nützlich, danke.
Das Cookie:HTML local Gibt Null

<!doctype html> 
<html> 
    <head> 
    <cookie> 
     <script>localStorage.setItem('id',Math.floor(Math.random()*10)) 
</script> 
    </cookie> 
    </head> 
    <body> 
    <script>var id = localStorage.getItem('id') 
    alert(id)</script> 
    </body> 
</html> 

Das Script:

<!doctype html> 
<html> 
    <head> 

    <script> 
    var theId=localStorage.getItem('id') 


    function change(id,target){ 
     var info = localStorage.getItem(id); 
     alert(info) 
     document.getElementById(target).innerHTML=info; 
    } 
    function read(){ 
     var element=document.createElement('h1') 
     element.innerHTML='You Want To Read' 
     document.body.appendChild(element) 
     alert('debug') 

    } 
    </script> 
    </head> 
    <body> 
    <input type="button" value="Read" name="read_story" id="read_story" 
onclick=read();change(theId,info)> 
    <p id='info'>initial</p> 
    </body> 
    <script> 
    alert('debug'); 

    </script> 
</html> 
+0

haben Sie versucht, nur einen harten codierten Wert einstellen und sehen, ob getItem danach funktioniert? – ThisGuyHasTwoThumbs

Antwort

1

Sie die Fehlermeldung falsch interpretiert haben.

Wenn es nicht die innerHTML von null kann dann haben Sie something.innerHTML = a_value. Es ist die something die null nichts zu tun mit lokalem Speicher ist.

In change(theId,info) ist info eine Variable. Es ist eine Referenz auf das Element mit id="info".

Sie verwenden es hier: document.getElementById(target).

info (jetzt target) wird in eine Zeichenfolge konvertiert ("[object HTMLParagraphElement]").

Es gibt kein Element mit id="[object HTMLParagraphElement]", Sie erhalten also null. Wenn Sie die Funktion aufrufen, müssen Sie eine Zeichenkette übergeben, keine Variable.

+0

Danke, aber wie gehe ich die Variable als String die Funktion Rückkehr localStorage.getItem (‚id‘) in innerHTML- zu lassen? –

+0

@JohnHao - Sie setzen Zitate um ihn herum. – Quentin