jQuery使用过滤器提取数据

时间:2014-08-09 15:24:09

标签: javascript jquery html html5

我试图在另一个页面中的div中获取内容。

$.get('page1.php', function(data){
  //option 1 <-- Cannot get content in a div inside a div, but can get root-div content
  var content = $(data).filter('#bar').html();

 //option 2 <-- Cannot get root-div content, but can get content in a div inside a div
 var content = $('#bar', data).html();
});

我注意到一个问题,如果我使用filter函数来提取数据,我将无法在root-div中获取div的内容。例如,使用以下代码获取身份bar中的内容:$(data).filter('#bar').html();

<div id="foo">
  <div id="bar">
  Lorem ipsum
  </div>
</div>

但是,如果我使用$('#bar', data).html(),我可以检索栏内的内容,但我无法检索foo的内容,例如('#foo', data).html()

是否有任何功能可以将这两种情况结合起来而不是一起使用这两种方法?

1 个答案:

答案 0 :(得分:0)

您应该提供一个指定data的示例,以明确您期望的行为。
从您写的内容来看,我假设您正在尝试使用filter从div的子节点中进行选择。它不会起作用,因为filter从当前选择的对象中选择,它并不关心 这些物体里面是什么。因此,如果您的选择中有div#foo,那么它就不会关心其中的div#bar

所以,这有效:

$("#foo").filter("#foo").html()

但它不会工作

$("#foo").filter("#bar").html()

因为div#bar不在您尝试过滤的选择中。它可以这样工作:

$("#foo").children().filter("#bar").html()


如果我误解了你的问题,我道歉,并很乐意更新我的答案。