0

リンクをクリックすると、PHPファイルにリダイレクトされます。コンテンツはJSONとしてロードおよびフェッチされ、表示されます。そこには問題はありません。

ただし、IEのすべてのバージョンで、コンテンツは"undefined"、でロードされるコンテンツの前に文字列で表示され$.post(JSON)ます。

注:要求されたPHPファイルでは、データは。で送信されjson_encode()ます。

jQueryコード:

$(".letter").click(function(e){
    e.preventDefault();
    $.ajaxSetup({cache:false});
    var letter= $(this).text();
    $.post("http://localhost/ajax.php/", {letter:letter},function(data) {
       var listdata;
       $.each(data, function(i,item) {
            listdata += "<tr>";
            listdata += "<td>"+item.book_name+"</td>";
            listdata += "<td>"+item.author+"</td>";
            listdata += "</tr>";
       });
      $("#result").empty();
      $("#result").html(listdata);
    },"json"
   );
});

HTMLコード:

<div id="letters">
  <span class="letter">A</span>
  <span class="letter">B</span>
  <span class="letter">C</span>
  <span class="letter">D</span>
</div>
<h3>My Books </h3>
<table id="result"> </table>

IEブラウザで、次のように表示します。

My Books 
undefined  

| Science and Tech | Author1 |
| Web Development  | Author2 |  

このIEの問題をどのように解決できますか?

4

1 に答える 1

3

デフォルトでは未定義listdataの空の文字列に初期化する必要があります。var listdata = '';

于 2013-01-26T18:06:29.817 に答える