私は、ユーザーが検索バーに何かを入力し、プログラムが上位3つのWikipediaの結果とそれぞれの短い説明を返すJavaScriptでプログラムを作成しようとしています。私は正常に検索結果を取得し、次の構文でタイトルを返すことができます。MediaWiki API経由で記事からテキストを返しますか?
articles1.append(x.query.search[0].title);
しかし、MediaWikiのサイト(https://www.mediawiki.org/wiki/API:Parsing_wikitext)は、「テキストは」タイトル」に似たパラメータとして使用することができると信じて私をリードしながら、以下は何も返されません:
articles1.append(x.query.search[0].text);
"要約"または記載されている他のパラメータについても同様です。私は、これらのパラメータがどのように機能するのかを根本的に誤解しているように感じるかもしれませんが、少なくとも要求されたタイトルをうまく掴むことができるので、私はあまり離れていないように感じます。すべてのヘルプは高く評価され、完全なコードは以下の通りです:
HTML:
<input type="text" value='' id=test >
<button>Search</button>
<section class='articles1'>
1.
</section>
<section class='articles2'>
2.
</section>
<section class='articles3'>
3.
</section>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
はJavaScript:
$(document).ready(function() {
var articles1 = $('.articles1');
var articles2 = $('.articles2');
var articles3 = $('.articles3');
var input = $('input');
var button = $('button');
var toSearch = '';
var searchUrl = 'https://en.wikipedia.org/w/api.php';
$("button").click(function(e) {
var search = document.getElementById("test").value;
$.ajax({
url: 'http://en.wikipedia.org/w/api.php',
data: { action: 'query', list: 'search', srsearch: search, format: 'json' },
dataType: 'jsonp',
success: function(x) {
articles1.append(x.query.search[0].title);
articles2.append(x.query.search[1].title);
articles3.append(x.query.search[2].title);
}
})
})
})
ajaxリクエストの成功関数では、xをコンソールに記録してみてください。そうすれば、オブジェクトの形を調べることができます。オブジェクトの形やアクセス方法を正確に教えてください。 –