Javascript jQuery:选择器无法在ajax下载页面上工作

Javascript jQuery:选择器无法在ajax下载页面上工作,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图从ajax下载页面中提取一个元素,以便稍后将其附加到DOM中。我获取的页面如下所示: $.ajax({ url: pagePath, success: function (data) { //data is correctly shown in debugger, all the elements exist. var $div = $(data).find("[data-custom-attr]"

我试图从ajax下载页面中提取一个元素,以便稍后将其附加到DOM中。我获取的页面如下所示:

    $.ajax({
        url: pagePath,
        success: function (data) { 
            //data is correctly shown in debugger, all the elements exist.

            var $div = $(data).find("[data-custom-attr]").first();
            //$(data) has lenght > 0, however $div has length 0!
            //$(data).find("#ajaxpage") also has lenght 0!
        },
        dataType: "html"
    });
这是获取的页面:

    <!DOCTYPE html>
    <html>
        <head>      
        </head>
        <body>
            <div id="ajaxpage" data-custom-attr="ajaxpage">
                <h2>Ajax downloaded page!</h2>          
            </div>      
        </body>
    </html>

Ajax下载页面!
我尝试了几个不同的选择器,但每个人都失败了。我觉得代码中一定有个很愚蠢的错误,但我看不出来


这些选择器有什么问题吗?

原因是jQuery抛弃了所有你给它的废话,只解析带有h2的div:

$("<!DOCTYPE html><html><head></head><body><div id='ajaxpage' data-custom-attr='ajaxpage'><h2>Ajax downloaded page!</h2></div></body></html")

$(“Ajax下载页面!之所以这样做,是因为jQuery抛弃了您给它的所有废话,只使用h2解析div:

$("<!DOCTYPE html><html><head></head><body><div id='ajaxpage' data-custom-attr='ajaxpage'><h2>Ajax downloaded page!</h2></div></body></html")
$(“Ajax下载页面!
var$div=$('').html(数据).find(“[data custom attr]”)。first();
var$div=$('').html(数据).find(“[data custom attr]”)。first();
试试这个:

var $div = $('<div></div>').html(data).find("[data-custom-attr]").first();
var$div=$(“”).html(数据).find(“[data custom attr]”)。first();
试试这个:

var $div = $('<div></div>').html(data).find("[data-custom-attr]").first();
var$div=$(“”).html(数据).find(“[data custom attr]”)。first();

数据的值是多少?@ChamikaSandamal这是一个问题。查看注释:)尝试使用
.load
?即
$('#目标').load('url/to/page.html[数据自定义属性])
不,不会的,jquery扔掉了所有的东西,包括
标记,以及
标记前后的所有东西。@MarcusEkwall:我在问题中没有看到它。评论说他没有尝试过的是
数据的值是什么
数据的值是什么?@ChamikaSandamal这是个问题。瞧在注释处确定:)尝试使用
.load
?例如,
$('#target').load('url/to/page.html[data custom attr]')不,不会的,jquery扔掉了
标记之前和之后的所有东西,以及
标记之前和之后的所有东西。@MarcusEkwall:我在问题中没有看到它。评论说他尝试了什么而不是数据的价值是什么