2016-03-20 23 views
0

Aşağıdaki kod yazıldığında, yalnızca localStorage değeri bir tamsayı olduğunda veya değer yalnızca rakamlardan oluştuğunda çalışır. bu cevap doğru önümde olması mümkündür, böylece JavaScript ile oldukça yeni Im ..Javascript Yakalanmamış ReferenceError localStorage öğesinden alınırken hata oluştu

<html> 
<body> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
    <div id="test"></div> 
</body> 
</html> 

<script type="text/javascript"> 

    localStorage.setItem('test', '12345'); 
    localStorage.setItem('foo', 'bar'); 
    localStorage.setItem('john', 'doe'); 
    localStorage.setItem('carl', 14); 

      var name, content; 
      for (var key in localStorage) { 
       $("#test").append('<button onclick="senddata('+localStorage[key]+')">'+key+'</button>'); 
      } 

    function senddata(content) { 
    $.post("processor.php", 
     {text: content}, 
     function(response){ 
      console.log(response); 
     } 
     ); 
    } 
</script> 

aşağıdaki konsola

Uncaught ReferenceError: bar is not defined 
Uncaught ReferenceError: doe is not defined 
14 
12345 
14 

processor.php

görünen kod tarafından oluşturulan düğmelerine basarak
if (isset($_POST['text'])) 
    die($_POST['text']); 

Neyi yanlış yapıyorum? okuma :) aksi takdirde yerine dize 'bar' (sendata('bar')) ait tanımsız değişken bar (sendata(bar)) göndermeyi dener

$("#test").append('<button onclick="senddata('+localStorage[key]+')">'+key+'</button>'); 

$("#test").append('<button onclick="senddata(\''+localStorage[key]+'\')">'+key+'</button>'); 

için

cevap

0

Sayısal değişmezler çıplak yazılmıştır. Örneğin dize değişmezleri her zaman tek veya çift tırnaklara ihtiyaç duyarlar. Örneğin. 'foo' veya "foo"

Dize değişmezlerini gerektiği gibi alıntıladığınızdan emin olun.

Ayrıca, hata ayıklamayı denediniz mi? Tam olarak neyin olup bittiğini görmek için betiğinize adım atın. Muhtemelen bir noktada bir hata verilecektir.

İlgili konular