如何使用jQuery ajax获取另一页上的div的html?

我使用jQuery的ajax代码来加载新的页面,但希望他只得到一个div的html。

我的代码:HTML:

<body> <div id="content"></div> </body> 

脚本:

 $.ajax({ url:href, type:'GET', success: function(data){ $('#content').html(data); } }); 

我希望他只在另一页上获得$('div#content')的html。 怎么做?

好的,你应该“构build”html并find.content div。

喜欢这个:

 $.ajax({ url:href, type:'GET', success: function(data){ $('#content').html($(data).find('#content').html()); } }); 

简单!

你可以使用JQuery .load()方法:

http://api.jquery.com/load/

  $( "#content" ).load( "ajax/test.html div#content" ); 

如果你正在寻找来自不同领域的内容,这将做的伎俩:

 $.ajax({ url:'http://www.corsproxy.com/' + 'en.wikipedia.org/wiki/Briarcliff_Manor,_New_York', type:'GET', success: function(data){ $('#content').html($(data).find('#firstHeading').html()); } }); 

你真的不能这样做,一个AJAX请求获取整个文件,但你可以过滤内容一旦检索:

 $.ajax({ url:href, type:'GET', success: function(data) { var content = $('<div>').append(data).find('#content'); $('#content').html( content ); } }); 

注意使用一个虚拟元素作为find()只适用于后代,并且不会find根元素。

或者让jQuery为你过滤:

 $('#content').load(href + ' #IDofDivToFind'); 

我假设这不是一个跨域请求,因为这是行不通的,只有页面在同一个域。

 $.ajax({ url:href, type:'get', success: function(data){ console.log($(data)); } }); 

这个控制台日志得到一个像对象一样的数组:[meta,title,],非常奇怪

你可以使用JavaScript:

 var doc = document.documentElement.cloneNode() doc.innerHTML = data $content = $(doc.querySelector('#content'))