维基百科 API 沙箱,根据用户输入搜索
Wikipedia API sandbox, search by user's input
正在尝试通过用户输入在维基百科中进行搜索,但由于某种原因无法正常工作。首先我认为这可能是由于跨域问题。但是 .ajax 应该会有所帮助。
这是代码笔:http://codepen.io/ekilja01/pen/pRerpb
这是我的 HTML:
<script src="https://use.fontawesome.com/43f8201759.js">
</script>
<body>
<h2 class="headertext">WIKIPEDIA <br> VIEWER </h2>
<div class="row">
<div class="col-10-md">
<input class="searchRequest blink_me" id="cursor" type="text" placeholder="__"></input>
</div>
<div class="searchIcon col-2-md"> </div>
</div>
<div>
<p class=results></p>
</div>
</body>
这是我的 jQuery:
$(document).ready(function() {
var icon = "<i class='fa fa-search fa-2x'></i>";
$('#cursor').on("keydown", function() {
$(this).removeClass("blink_me");
var searchIcon = $(".searchIcon");
searchIcon.empty();
if ($(".searchRequest").val().length > 0) {
searchIcon.append(icon);
}
searchIcon.on("click", function() {
console.log("clicked!");
var search = $(".searchRequest").val();
var url = "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=" + search + "&format=json&callback=?";
$.ajax({
dataType: "jsonp",
url: url,
success: function(data) {
$(".results").html(data[0]);
console.log(data[0]);
}
});
});
});
});
哪里做错了?请帮忙。
您的 js 加载顺序有误。
data
对象包含索引为 2 的数组中的结果文本,我假设这就是您要显示的内容,将其更改为
$(".results").html(data[2]);
您可以在此处查看原始代码的修改版本
正在尝试通过用户输入在维基百科中进行搜索,但由于某种原因无法正常工作。首先我认为这可能是由于跨域问题。但是 .ajax 应该会有所帮助。
这是代码笔:http://codepen.io/ekilja01/pen/pRerpb
这是我的 HTML:
<script src="https://use.fontawesome.com/43f8201759.js">
</script>
<body>
<h2 class="headertext">WIKIPEDIA <br> VIEWER </h2>
<div class="row">
<div class="col-10-md">
<input class="searchRequest blink_me" id="cursor" type="text" placeholder="__"></input>
</div>
<div class="searchIcon col-2-md"> </div>
</div>
<div>
<p class=results></p>
</div>
</body>
这是我的 jQuery:
$(document).ready(function() {
var icon = "<i class='fa fa-search fa-2x'></i>";
$('#cursor').on("keydown", function() {
$(this).removeClass("blink_me");
var searchIcon = $(".searchIcon");
searchIcon.empty();
if ($(".searchRequest").val().length > 0) {
searchIcon.append(icon);
}
searchIcon.on("click", function() {
console.log("clicked!");
var search = $(".searchRequest").val();
var url = "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=" + search + "&format=json&callback=?";
$.ajax({
dataType: "jsonp",
url: url,
success: function(data) {
$(".results").html(data[0]);
console.log(data[0]);
}
});
});
});
});
哪里做错了?请帮忙。
您的 js 加载顺序有误。
data
对象包含索引为 2 的数组中的结果文本,我假设这就是您要显示的内容,将其更改为
$(".results").html(data[2]);
您可以在此处查看原始代码的修改版本