我试图用JavaScript编写程序,用户在搜索栏中输入内容,程序返回前3个维基百科结果和每个结果的简短描述。我可以成功获取搜索结果并使用以下语法返回标题:
articles1.append(x.query.search[0].title);
然而,虽然MediaWiki网站(https://www.mediawiki.org/wiki/API:Parsing_wikitext)让我相信" text"可以用作类似于" title,"的参数。以下内容不会返回任何内容:
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 );
}
})
})
})
答案 0 :(得分:1)
您所指的Parsing WikiText页面解释了如何解析任意WikiText。这与此无关。
您正在使用Search API,并且只能使用该模块的返回属性。在这种情况下,您可能正在寻找snippet
属性:
articles1.append( x.query.search[0].snippet );
查看Search API文档以获取更多选项。
P.S。您还可以使用MediaWiki's API Sandbox来测试您的API请求。