javascript – jQuery Ajax获取数据语法错误,无法识别的表达式:

前端之家收集整理的这篇文章主要介绍了javascript – jQuery Ajax获取数据语法错误,无法识别的表达式:前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用最新的jQuery(1.9.0),我很困惑为什么这段代码不起作用:

$.testAjaxFilter = function() {

    var base = this;

    // get faq categories
    var currentFaqCategories = $('#category-list ul li a');

    // loop through each faq category link and bind a click event to each
    if ( typeof currentFaqCategories !== 'undefined') {

        $.each(currentFaqCategories,function(index,category) {

            $(category).click( function(e) {
                $(e.target).getFaqList();
                return false;
            });

        });

    }

    // GET faq list elements from category link
    $.fn.getFaqList = function() {

        $.get($(this[0]).attr('href'),function(data) {

            base.addFaqSectionToPage( $(data).find('section.faq-page #content-column') );

        });

    };

    // add new faq section to current page
    this.addFaqSectionToPage = function(faqSection) {

        // remove old faq section
        var currentFaqSection = $('section.faq-page #content-column');

        currentFaqSection.empty();
        currentFaqSection.append(faqSection);

    };

};

$.testAjaxFilter();

在查看控制台时,在单击其中一个类别链接时,GET会在其响应中检索整个页面,但随后会出现语法错误,无法识别的表达式:(列出检索到的页面中的所有HTML).那么,$.fn.getFaqList中出现了问题,可能是使用$(数据)?

有什么明显的我做错了吗?任何帮助将不胜感激.我对AJAX的东西不太了解.

最佳答案
感谢Musa指出这一点.我会奖励你作为正确答案…但我想我不能这样做评论:(

我不得不替换:

$(data).find

有了这个:

$($.parseHTML(data)).find

我之前尝试过类似的东西,基于其他Stackoverflow的答案,但我没有正确执行它,所以我不断收到错误.对于需要更清晰解决问题的人来说,这些答案可能有所帮助:

JQuery unrecognized expression on Ajax response

jQuery + client-side template = “Syntax error,unrecognized expression”

猜你在找的jQuery相关文章