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

Iag*_*uno 31 html javascript jquery

我正在使用jQuery的ajax代码来加载新页面,但希望他只获取div的html.

我的代码:HTML:

<body>
    <div id="content"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

脚本:

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

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

小智 40

好的,你应该"构造"html并找到.content div.

像这样:

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

简单!

  • 不要这样做,这样做可能会导致脚本从其他页面运行-这是一个很奇怪的问题,可能不会影响您,但是我建议使用.load来删除脚本。Ala`var loadHolder = $('&lt;div&gt; &lt;/ div&gt;'); loadHolder.load(href +'#content',function(){$('#content')。loadHolder.find('#content')。html())})` (2认同)

nil*_*gun 24

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

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

 $( "#content" ).load( "ajax/test.html div#content" );
Run Code Online (Sandbox Code Playgroud)


Sin*_*ski 12

如果您正在寻找来自不同域的内容,这将有助于:

$.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());
        }
});
Run Code Online (Sandbox Code Playgroud)


ade*_*neo 5

您确实无法做到这一点,ajax请求会获取整个文件,但是一旦检索到内容,您就可以对其进行过滤:

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

请注意,find()仅在后代中使用虚拟元素,而不会找到根元素。

或让jQuery为您过滤:

$('#content').load(href + ' #IDofDivToFind');
Run Code Online (Sandbox Code Playgroud)

我假设这不是跨域请求,因为这将不起作用,只能是同一域上的页面。

  • 我几个小时以来一直在尝试做类似的事情,只是阅读了您的回复“请注意使用虚拟元素,因为 find() 仅适用于后代,并且不会找到根元素。” 给了我很大的帮助。谢谢你! (2认同)