JSON-фильтрация с живым поиском - PullRequest
0 голосов
/ 20 октября 2019

Я хочу отобразить карты данных на веб-сайте. Данные извлекаются из URL-адреса JSON. Это тоже работает. Но теперь я хочу отфильтровать карточки так, чтобы я видел только те, которые соответствуют поисковому вводу. Кто-нибудь может мне помочь? Я попробовал несколько подходов, но не могу дальше, потому что я также новичок в Javascript.

У меня есть следующий код:

var yourUrl = "myURL";
function Get(yourUrl) {
    // get JSON data via Ajax...
    return `[
    {"link": "alice", "profile": "profile1", "profilename": "Alice", "str": "Allen Street", "location": "New York"},
    {"link": "bob", "profile": "profile2", "profilename": "Bob", "str": "Market St.", "location": "San Francisco"}
    ]`;
}        
var postData = JSON.parse(Get(yourUrl));

function append_json(data) {
  //Set Up the template
  var s = $("#postTemplate")[0].innerHTML.trim();
  var holder = document.createElement('div');
  holder.innerHTML = s;
  var template = holder.childNodes;

  var member = document.getElementById('newprofile');
  data.forEach(function(object) {

    //Clone Template
    var newItem = $(template).clone();

    //Populate it
    $(newItem).find(".memurl").attr("href", object.link);
    var img = $(newItem).find(".thumb")
    $(img).attr("src", object.image).attr("alt", $(img).attr("alt") + object.profile + " " + "etc")
      .attr("title", $(img).attr("title") + object.profilename + " finish this off");
    $(newItem).find(".profile").html(object.profile);
    $(newItem).find(".street").html(object.str);
    $(newItem).find(".location").html(object.location);
    //Append it

    $(".newprofile").append(newItem);

  });
}

$("document").ready(function() {
  append_json(postData);
});
.member {
  border: 1px solid silver;
  margin: 5px;
  padding: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="profilesearch">
    <input type="text" placeholder="search">
</div>

<div class="newprofile">
  <!-- Template for our posts -->
  <script type="text/template" id="postTemplate">
    <div class="member">
      <a class="memurl" href="">
        <img class="thumb" alt="Profil" title="Profil" src="">
       </a>
      <!-- Replaced p  with div, can't nest p tags -->
      <div class="info">
        <p class="profile"></p>
        <p class="street"></p>
        <p class="location"></p>
        </div>
        <div class="card-outmore">
      <a class="memurl" href="" target="_blank">Zum Profil</a>
      </div>

    </div>
  </script>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...