2011-06-24 19 views
41

Chcę załadować plik * .txt i wstawić zawartość do div. Oto mój kod:jQuery: załaduj plik txt i wstaw do div

JS:

$(document).ready(function() { 
    $("#lesen").click(function() { 
     $.ajax({ 
      url : "helloworld.txt", 
      success : function (data) { 
       $(".text").html(data); 
      } 
     }); 
    }); 
}); 

html:

<div class="button"> 
    <input type="button" id="lesen" value="Lesen!" /> 
</div> 

<div class="text"> 
    Lorem Ipsum <br /> 
</div> 

txt:

im done 

Jeśli kliknięciu na raporcie przycisk firebug następujący błąd:

Syntax-Error 
im done 

nie wiem co robić :-(

+0

Użyj odpowiedzi @Dogberta. Zignoruj ​​komunikat o błędzie na razie. Jest to po prostu rodzaj "ducha", który zniknie, jeśli spróbujesz kodu na serwerze http. To sposób narzekania przeglądarki, że to, co próbujesz zrobić, było przeznaczone dla http: //, a nie file: ///. – IamGuest

Odpowiedz

56

Trzeba dodać dataType - http://api.jquery.com/jQuery.ajax/

$(document).ready(function() { 
    $("#lesen").click(function() { 
     $.ajax({ 
      url : "helloworld.txt", 
      dataType: "text", 
      success : function (data) { 
       $(".text").html(data); 
      } 
     }); 
    }); 
}); 
+0

Teraz robi to, co chcę, ale błąd nadal będzie zgłaszany – Khazl

+0

@Khazl, jaki jest dokładny komunikat o błędzie.Możesz skopiować i wkleić tutaj? – Dogbert

+0

f (a = div.text, c = "fxqueue", d = niezdefiniowany, e = prawdziwy) f (a = div.text, c = "fxqueue", d = function()) f() jquery .... min.js (Zeile 16) f (a = [div.text], c = function(), d = undefined) f (a = function(), b = undefined) f (a = "fx", c = funkcja()) f (a = 3000, b = "fx") sukces (dane = "im zrobione") f (e = Obiekt {url = "helloworld.txt", isLocal = true, mehr ...}, f = ["im done", "success", Object {readyState = 4, responseXML = document, mehr ...}]) g (a = 200, c = "sukces", l = Obiekt {xml = dokument, tekst = "im zrobiony"}, m = "") g (a = readystatechange, e = niezdefiniowany) im zrobiłem – Khazl

0

Spróbuj

$(".text").text(data); 

Lub przekonwertować otrzymane dane na ciąg.

+0

ten sam błąd :-( – Khazl

2

Można użyć jQuery load sposób, aby uzyskać zawartość i wstawić do elementu.

Spróbuj tego:

$(document).ready(function() { 
     $("#lesen").click(function() { 
       $(".text").load("helloworld.txt"); 
    }); 
}); 

You, można także dodać połączenie z powrotem, aby wykonać coś raz procesu ładowania jest kompletna

np:

$(document).ready(function() { 
    $("#lesen").click(function() { 
     $(".text").load("helloworld.txt", function(){ 
      alert("Done Loading"); 
     }); 
    }); 
}); 
4

.load("file.txt") jest znacznie łatwiejsze. Który działa, ale nawet jeśli testowanie, nie otrzymasz wyników z localdrive, będziesz potrzebował rzeczywistego serwera http. Niewidoczny błąd to błąd XMLHttpRequest.

0
<script type="text/javascript">  
    $("#textFileID").html("Loading...").load("URL TEXT"); 
</script> 

<div id="textFileID"></div>