如何从ajax加载的html中获取类名和属性

时间:2011-02-15 15:49:02

标签: javascript html ajax jquery

我通过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"
    }
  });

喜欢一些帮助人员!

4 个答案:

答案 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数据中提取。

希望这可以帮助别人!