jQuery.ajax过滤器不适用于少数选择器

时间:2015-02-18 19:33:58

标签: jquery ajax wordpress

我正在使用wordpress(4.1)和jQuery 1.11 - 我想在第I页中加载其他页面内容 - 现在使用ajax。我可以追加整个html(宽头,元和所有东西),我可以过滤图像或跨度,但是当我试图过滤部分或#content时,会有空响应。控制台中没有错误。

jQuery的:

$('nav a').click(function(load) {
    load.preventDefault();
    jQuery.ajax({
        type: "GET",
        url: jQuery(this).attr('href'),
        dataType: "html",
        success: function(out) {
            result = jQuery(out).find('section');
            jQuery('#change').append(result);
        }
    });
});

HTML看起来像这样:

<section id="content">
 ....
</section>

我想我尝试了一切。随着&#34; img&#34;而不是部分有内容(部分内容来自#内容部分,所以它很奇怪)。

任何人都知道什么是错的?我在同一个版本的另一个wordpress中使用了相同的代码,所有这些都像魅力一样。我没有更多的jQuery库加载。

1 个答案:

答案 0 :(得分:1)

如果您的完整HTML回复是:

<section id="content">
 ....
</section>

那么问题是$.find只会找到元素的后代,而它本身也找不到顶级元素。举个例子:

$('<p><a>hi</a></p>').find('p') // => []
$('<p><a>hi</a></p>').find('a') // => [{a element}]

快速解决方法是:

$('<div></div>').append($('<p><a>hi</a></p>')).find('p') // => [{p element}]