javascript - 维基百科 API 沙箱,根据用户输入进行搜索

标签 javascript jquery json jsonp

尝试通过用户输入在维基百科中搜索,但由于某种原因不起作用。首先我认为这可能是由于跨域问题造成的。但 .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]);

您可以在此处查看原始代码的修改版本

http://codepen.io/anon/pen/mRmGXG

关于javascript - 维基百科 API 沙箱,根据用户输入进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41796456/

相关文章:

Javascript 数组在填充时显示 0 长度

javascript - 将生成的 URL 中的 + 替换为 %20

javascript - ImmutableJS 会跳过未使用的代码块吗?

jquery - 如何将 html 表格行传递到 DataTable.net fnAddData

jquery - 哪个在 iOS 上最有效 - CSS3 或 jQuery 动画?

javascript - 更改 json 中的 'children' 节点

javascript - HTML/JS 检测图像上的区域

javascript - IE8不克隆元素

javascript - 如何使用 Javascript 将元素添加到 JSON 对象

java - 将 Gson 与接口(interface)类型一起使用