6

会社の詳細を含むウィキペディアのインフォボックスのコンテンツを取得するために JQuery を使用したいと考えています。

私はほとんどそこにいると思うが、道の最後の一歩を踏み出すことができない

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 によって HTML 形式に解析されます

これには、infobox コンテンツを含むテーブルが含まれます。

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

結果は、データを入れるための単なる空のテーブルプレースホルダーです

ページの他のいくつかの要素と連携します。たとえば、.infobox を .logo に交換すると完全に機能します。

より多くの情報を提供できてうれしいですが、私はこれに何時間も費やし、非常に多くの順列を試したので、何が関連しているのかさえわかりません...

ティア

4

1 に答える 1

5

ウィキペディアの JSON はラッピング ドキュメント要素を返さないようです。これにより、ルートにある要素の属性を選択できなくなっているようです。これを試して:

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());
});

それがうまくいくことを願っています!

于 2011-12-20T03:08:06.637 に答える