我通过ajax加载页面,需要从解析后的html中获取某个类。我正在使用的方法似乎不起作用,只返回'undefined'。
$.ajax({
type:'post',
url:"path/to/page",
success:function(r){
r = $(r);//parse html
var page = r.find('#siteWrap').attr('class');//pull off class name
alert(page);//returns "undefined"
}
});
喜欢一些帮助人员!
答案 0 :(得分:3)
尝试将您的数据(r
)添加到dom:
$(body).append('<div id="appended">'+r+'</div>);
然后执行以下操作:
$('#appended').find(....)
如果您不想在R中显示数据,只需通过css #appended
隐藏#appended{display: none;}
并在解析后$('#appended').remove()
答案 1 :(得分:0)
看起来只是一个错字;尝试将$ r.find更改为r.find
答案 2 :(得分:0)
看起来$ r未定义。
r = $(r);//parse html
$r
仍为undefined
。
答案 3 :(得分:0)
我想出了解决方案(灵感来自@helle):
我在我要求的页面上添加了一个新元素,
<div id='page' style='display:none;'>myPage</div>
然后我使用jQuery从响应数据中的那些标记之间拉出html:
$.ajax({
type:'post',
url:$path,
data:{ajaxRequest:'true'},
success:function(r){
var $r = $(r);
var $page = $r.find('#page').html();
alert($page);//alerts "myPage"!
}
});
结论: 一旦jquery解析,你就无法从ajax html响应中提取属性或类名,只有html()可以从解析后的html数据中提取。
希望这可以帮助别人!