过滤掉<script>标签,ajax </script>

时间:2013-05-20 15:11:43

标签: jquery ajax filter

我正在为学校项目构建一个简单的Twitter副本。我正在使用php和ajax从数据库中获取twits。我有自动获取新twits的系统,然后显示show new twits link。我也在使用智能模板,show_twits.php正在使用show_twits.tpl模板。在show_twits.tpl上有一些jquery代码(需要在那里),我遇到的问题是,当没有新的twits时,显示更多twits仍然出现,因为有jquery代码。我的问题是如何过滤掉响应,因此只有在响应中计算带有“twit”类的div,而不是<script>标记。

var action = "show_twits.php";
var form_data = {
    is_ajax: 1,
    automatic: 1,
    last_ID: last_ID,
    userid: userid
};
$.ajax({
      dataType : 'html',
      type: "POST",
      url: action,
      data: form_data,
      success: function(response) {

if (response != '') {   
    $('#show_new_twits').html(response);
    $('#show_new_twits_link').css('display', 'block');
} else {
    $('#show_new_twits_link').css('display', 'none');
}
}
});

我认为代码解释了什么是问题,if (response != '')链接显示和数据加载,但总是如此,因为脚本标记在那里,响应永远不会为空。请帮助我用过滤器尝试了很多东西,但没有找到运气。

1 个答案:

答案 0 :(得分:2)

试试这个:

success: function(response) {
    var $twits = $("<div/>").html(response).find('.twit');
    if ($twits.length) {   
      $('#show_new_twits').empty().append($twits);
      $('#show_new_twits_link').css('display', 'block');
    } else {
    $('#show_new_twits_link').css('display', 'none');
  }
}