2011-12-20 2 views
6

JQuery를 사용하여 회사 세부 정보가 포함 된 위키 피 디아 infobox의 컨텐츠를 되 찾으려합니다.JQuery로 위키 피 디아 infobox 콘텐츠 가져 오기

내가 거의 다 해요하지만 난 그냥

var searchTerm="toyota"; 
var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
$.getJSON(url,function(data){ 
    wikiHTML = data.parse.text["*"]; 
    $wikiDOM = $(wikiHTML); 
    $("#result").append($wikiDOM.find('.infobox').html()); 
}); 

첫 번째 부분이 작동하는 방식의 마지막 단계를 얻을 수 있다고 생각은 - wikiHTML는 위키 백과의 API에 의해 구문 분석 페이지의 콘텐츠를 포함

<table class="infobox vcard" cellspacing="5" style="width:22em;"> 

결과가

01의 데이터를 넣어 그냥 빈 테이블의 자리 표시 자입니다 : HTML 형식

에 이는 인포 박스의 내용으로 테이블을 포함

페이지의 다른 요소와 함께 작동합니다. 예를 들어, .logo에 대한 .infobox를 바꿔 넣으면 완벽하게 작동합니다.

더 많은 정보를 제공하는 해피,하지만이에 시간을 소비하고 난 더 이상 관련이 무엇인지조차 확실하지 않다 이렇게 많은 순열을 시도했습니다 ...

TIA는

+1

그래서 문제/예상 결과가 정확히 무엇입니까? – Bergi

답변

5

는 위키 백과의 JSON은 아무튼 보인다 wrapping 문서 요소를 반환하지 않습니다. 이것은 루트에있는 요소의 속성을 선택하지 못하게합니다. 시도해보십시오.

var searchTerm="toyota"; 
var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + searchTerm+"&redirects&prop=text&callback=?"; 
$.getJSON(url,function(data){ 
    wikiHTML = data.parse.text["*"]; 
    $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
    $("#result").append($wikiDOM.find('.infobox').html()); 
}); 

희망 사항!

+0

감사합니다 - 완벽하게 작동합니다. 나는 그것을 결코 이해하지 못했을 것이다 –

+0

땀 없음, 그것이 당신을 위해 일하게되어 기쁘다! –

관련 문제