Robię projekt Wikipedia Viewer z FreeCodecamp. Z jakiegoś powodu funkcja Ajax nie działa, ponieważ nic się nie pojawia w konsoli na kliknięciu. Kod go jest pokazany poniżej. Z góry dziękuję do każdego, kto to widzi.

$(document).ready(function() {
  $("search").click(function() {
    var searchTerm = $("searchTerm").val();
    var url1 = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + searchTerm + "&format=json&callback=?";
    $.ajax({
      type: "GET",
      url: url1,
      async: false,
      dataType: "json",
      success: function(data) {
        console.log(data);
      },
      error: function(errorMessage) {
        alert("Error");
      }
    });
  });
});
0
Erika 23 czerwiec 2017, 22:51

3 odpowiedzi

Najlepsza odpowiedź

Sprawdź ponownie search i searchTerm. Czy są id lub {x3}}?

  1. Dla klasy, napisz $(".search")
  2. Na identyfikator, napisz $("#search")

Poniższy kod działa dla mnie.

$(document).ready(function() {
  $("#search").click(function() {
    var searchTerm = "usa";
    var url1 = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + searchTerm + "&format=json&callback=?";
    $.ajax({
      type: "GET",
      url: url1,
      async: false,
      dataType: "json",
      success: function(data) {
        console.log(data);
      },
      error: function(errorMessage) {
        alert("Error");
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="search">Click</button>
0
Damien Asseya 23 czerwiec 2017, 20:07

W tym obszarze kodu:

  $("search").click(function() {
    var searchTerm = $("searchTerm").val();

Czy używasz klasy lub identyfikatora? Jeśli używasz klasy, wyszukiwanie i wyszukiwarkę miałby kropkę (.) Przed nią taką:

  $(".search").click(function() {
    var searchTerm = $(".searchTerm").val();

Jeśli używasz identyfikatora, wyszukiwanie i wyszukiwanie miałby znak liczby (#) przed nią:

  $("#search").click(function() {
    var searchTerm = $("#searchTerm").val();
0
Dre 19 grudzień 2017, 17:27

Myślę, że masz problem z selektorem jQuery. Upewnij się, że również ładujesz jQuery.

$("searchTerm") tries to find <searchTerm>

I

$("search") tries to find <search>

Spróbuj użyć identyfikatorów i zajęć jak ...

$('#search') looks for <input type="text" id="search">
$('.search') looks for <input type="text" class="search">
$('input[type="text"]') looks for <input type="text">

$('#searchBtn') looks for <button id="search">Click Me</button>
$('.searchBtn') looks for <button class="search">Click Me</button>
$('button') looks for <button>Click Me</button>

Ważną częścią, aby zauważyć tutaj klasy, a identyfikatory można użyć do wyboru większości typów elementów. Więc #Search może być przyciskiem, wejściem tekstowym, textlaea, cokolwiek. Albo możesz wybrać element, podobnie jak próbowałeś zrobić.

Przykład: https://jsfiddle.net/gfa6agok/9/ - zobaczysz wyjście konsoli

0
dotKn0ck 23 czerwiec 2017, 20:10