Javascript jQuery:选择器无法在ajax下载页面上工作
我试图从ajax下载页面中提取一个元素,以便稍后将其附加到DOM中。我获取的页面如下所示: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({
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:我在问题中没有看到它。评论说他尝试了什么而不是数据的价值是什么