如何使用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()方法:
$( "#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'))