2013-09-21 19 views
22

Yeni sayfaları yüklemek için jQuery'nin ajax kodunu kullanıyorum, ancak onun yalnızca bir html dosyası almasını istedim.jQuery ajax ile başka bir sayfada bir div html nasıl alınır?

Benim kodları: HTML:

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

Senaryo:

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

Onu başka bir sayfada ('div # içeriği') $ sadece html almak istedim. Nasıl yapılır?

cevap

1
Gerçekten bunu yapamaz

, bir ajax isteği tüm dosyayı alır, ama bunu geri oluyor kez içerik filtreleme yapabilirsiniz: find() olarak bir kukla elemanının kullanımının sadece torunları ile çalışır

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

Not ve kök öğeleri bulamaz.

veya jQuery sizin için filtre bakalım:

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

yani aynı etki alanında sadece sayfaları çalışmaz gibi bu çapraz alanı isteğinin olmadığını varsayıyorum.

+0

Evet doğru filtreyi bu yöntemi denedim ama değil. –

36

Tamam, html'yi oluşturmalı ve .content div değerini bulmalısınız. Böyle

:

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

Basit!

+0

Bunu yapmayın, bunu yapmak, komut dosyalarının diğer sayfadan potansiyel olarak çalıştırılmasına neden olur - sizi etkilemeyebilecek garip bir sorundur, ancak betikleri çıkaracak olan .load'ı kullanmanızı öneririz. Ala 'var loadHolder = $ ('

'); loadHolder.load (href + '#content', işlev() { $ ('# içerik'). LoadHolder.find ('# içerik'). Html()) }) ' – Shadaez

20

kullanabilirsiniz JQuery .Load() yöntemi:

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

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

Mükemmel! Görüntülerin doğru bir şekilde yüklenmesini nasıl sağladığına dair herhangi bir fikriniz var mı?/'Yerine bir kök bağlantısı'/'göreli' ../'veya mutlak' http: // example.com/'? Temel olarak, görüntüleri başka bir siteye yüklemek için nasıl alabilirsiniz? – fredsbend

11

bu hile olacaktır farklı etki alanından içerik arıyorsanız:

$.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()); 
     } 
}); 
+0

hey o Briarcliff !! : D Ben White Plains – Sticky

+0

dan yapıyorum bu komut dosyaları diğer sayfadan potansiyel olarak çalıştırmak neden olur - bu sizi etkilemeyen garip bir konu ama ben kullanmanızı öneririz. – Shadaez

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

Bu konsol günlüğü nesne gibi bir dizi alır: [meta, başlık,], çok garip

Sen JavaScript kullanabilirsiniz:

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