2013-09-16 5 views
0

По какой-то причине следующий скрипт выдает ошибку «Ошибка: ошибка синтаксиса, нераспознанное выражение: commentscontainer_ (post_id)». Кто-нибудь знает, почему? это синтаксическая ошибка?Ajax Response apending data

$(document).ready(function() { 
var msg = '.text-holder'; 

$('.time').timeago(); 
$('.text-holder').autosize(); 

$('#post_comment').click(function() { 
    $(msg).focus(); 
}); 

$('.text-holder').keypress(function(e) { 
    var postID = this.id.replace('post_', ''); 
    if(e.which == 13) { 
     var val = $(msg).val(); 

     $.ajax({ 
      url: 'auth/classes/comments.php', 
      type: 'GET', 
      data: 'token=<?php echo $token; ?>&msg='+escape(val), 
      success: function(data) { 
       $(msg).val(''); 
       $(msg).css('height','14px'); 
       $('.commentscontainer_'+postID).append(data); 
       $('.time').timeago(); 
      } 
     }); 
    } 
}); 

Это довольно жевания HTML-

<div class="commentscontainer_['post_id']"></div> 

Я другой сценарий .. это он сталкиваясь с этим?

$(document).ready(function(){ 
     $(".comment_box").hide(); 

     $('.slider').on('click',function(){ 
      var flag = $(this).data('flag'), 
       postID = this.id.replace('post_', ''); 

      $('#' + postID).slideToggle(); 

      if (!flag) { 
       $.ajax({ 
        url : 'auth/classes/comments.php', 
        data: {post_id: postID} 
       }).done(function(data) { 
        $('.commentscontainer_'+postID).replaceWith(data); 
        $('.time').timeago(); 
       }); 
      } 
      $(this).data('flag', !flag) 
     }); 
    }); 
+0

сообщение и маркер получает ajaxed штраф на поджигатель .. бросает ошибку после того, как ответ – user2668436

+0

Что такое 'commentscontainer', класс, идентификатор? – tymeJV

+0

Да, его идентификатор класса, который содержит комментарии .. – user2668436

ответ

0

Вам нужно раздеть цитаты из postID, а также:

var postID = this.id.replace('post_', ''); 
postID = postID.replace(/['"]/g,''); 
+0

я тоже это заметил .. все еще бросает ту же ошибку после исправления – user2668436

+0

Привет, .. он не бросает эту ошибку .. но она не добавляет ее .. ничего не происходит – user2668436

+0

Ну что это 'data'? Запустите' console.log (data) 'и напишите комментарий, пожалуйста. @ user2668436 – tymeJV

0

Вы должны избежать определенных символов в вашем селекторе (например, [,]), либо JQuery выдаст ошибку.

var postID = this.id.replace('post_', ''); 
postID = postID.replace(/\[/g,'\\['); 
postID = postID.replace(/\]/g,'\\]');