2014-01-12 88 views
0

我試圖修改一些我的舊代碼以包含對照片的註釋。這些照片是使用$ .ajax獲取的,響應是html格式。

我的修改是將評論作爲一個json對象,然後解析以前獲得的HTML在適當的地方插入註釋。這裏是我的代碼[最新的化身(我已經嘗試了許多不同的方案)

$.ajax({ 
     type:"POST", 
     url:"<?php echo $_SERVER['PHP_SELF']; ?>", 
     data:"ajax_loadbigthumbs=true&section=<?php echo $_GET['section']; ?>", 
     dataType : "html", 
     success: function(html){ 

      jhtml = $(html); 

      $.getJSON("/commentsjson.php?getcomments=true&section=<?php echo $_GET['section']; ?>", function(data) { 

       $.each(data,function(i,item){ 

        //alert(item.comment); <--- this works so I know the data is coming back correctly 

        console.log(jhtml.find('#comments_' + item.photoid).attr("id")); // this shows 'undefined' 

        jhtml.find('#comments_' + item.photoid).css("display","block").html("<p>" + item.name + " said " + item.comment + "</p>"); 

       }); 

       $("#largethumbscontainer").append(jhtml);    
      }); 


     } 
    }); 

但是,這是行不通的。 console.log行(作爲測試)返回'undefined',下面的行(jhtml.find)沒有找到任何要修改的內容。

+0

'警報(item.photoid)'和'警報(jhtml.find('#comments_'+ item.photoid).length)'。它無法找到具有上述ID的元素,這是導致錯誤的原因......您可以分享html的值嗎? –

+0

html變量在成功後如何顯示? – makallio85

+0

我嘗試了alert(item.photoid),它確實返回了照片ID。我會嘗試其他。 – MrVimes

回答

0

我固定它,購買追加HTML到已經存在的元素,然後追加評論該元素....

$.ajax({ 
    type:"POST", 
    url:"<?php 
     echo htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, "utf-8"); 
    ?>", 
    data:"ajax_loadbigthumbs=true&section=<?php echo $_GET['section']; ?>", 
    dataType : "html", 
    success: function(html){ 

     jhtml = $(html); 
     $("#largethumbscontainer").append(jhtml); 
     largethumbs = $("#largethumbscontainer"); 

     $.getJSON("/commentsjson.php?getcomments=true&section=<?php 
      echo $_GET['section']; 
     ?>", function(data) { 

      $.each(data,function(i,item){ 

       largethumbs 
        .find('#comments_' + item.photoid) 
        .css('display','block') 
        .append('<p>' + 
         item.name + 
         ' said: <span style="font-style:italic;">' + 
         item.comment + 
         '</span></p>'); 

      }); 
     }); 
    } 
}); 
0
var $comment = $('#comments_' + item.photoid, jhtml); 
if ($comment.length) 
    $comment.css("display","block").html("<p>" + item.name + " said " + item.comment + "</p>"); 
+0

這沒有奏效。 – MrVimes

+0

你可以告訴控制檯日誌裏面寫了什麼: console.log($ comment.length); – no1lov3sme

+0

只是一堆零。 :( – MrVimes

相關問題