jQuery中的换行符ajax html回调导致错误

前端之家收集整理的这篇文章主要介绍了jQuery中的换行符ajax html回调导致错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从$.ajax调用返回一大块 HTML.来自 PHP的字符串在开头有两个换行符,例如
$data = "

<div>
     <p>Here is some text</p>
</div>";

这是$.ajax调用

$('form#form_id').submit(function(e){
    e.preventDefault();
    $form = $(this);
    $.ajax({
        url: $form.attr('action'),type: $form.attr('method'),data: $form.serialize(),dataType: 'html',success: function(data) {
            var $html = $($.parseHTML(data));
            $html.appendTo('#container_id').hide().fadeIn(300);
        }
    });
});

一切正常,直到我添加.hide().fadeIn(300),此时它抛出:TypeError:’undefined’不是一个对象(评估’hooks.cur = fn’)jquery.js:1925.如果我删除换行符就行了.我正在使用$.parseHTML,因为jQuery说:

If a string is known to be HTML but may start with arbitrary text that
is not an HTML tag,pass it to jQuery.parseHTML() which will return an
array of DOM nodes representing the markup. A jQuery collection can be
created from this,for example: $($.parseHTML(htmlString)).

知道发生了什么事吗?

解决方法

问题似乎是由集合中的文本节点引起的,您可以使用.filter(‘*’)将其过滤掉
var $html = $($.parseHTML(data)).filter('*');

猜你在找的jQuery相关文章