AJAX на Rails: changein innerText элемента работает только в первый раз - PullRequest
0 голосов
/ 18 марта 2020

хейуыыыыыы все! У меня есть одна проблема по поводу следующего кода: я использую ajax на рельсах, и все это работает просто отлично, за исключением внутренней замены HTML. Это на самом деле работает в первый раз (в основном это платформа, похожая на трут, где вы проводите профили), но потом это больше не работает. Предполагаемое поведение заключается в том, что он должен изменить заголовок, который гласит «4 совпадения осталось», и уменьшать «4» на единицу каждый раз.

function matchDisplayer() {
  var wrapper2 = document.querySelector(".wrapper-match");
  var parent = document.querySelector(".matchme-container");
  if(wrapper2){
    parent.prepend(wrapper2);
    wrapper2.hidden = false;
    changeText(wrapper2);
  } else {
    window.location.replace("<%= matches_path %>");
  }
};
function changeText(wrapper) {
    let fullText = wrapper.querySelector("#matches-left");
    let minusOne = `${parseInt(fullText.innerText[0], 10) - 1}`;
    fullText.innerText = `${fullText.innerText.replace(fullText.innerText[0], minusOne)}`;
}
<% if @match.save %>
  matchRemover();
  matchDisplayer();
<% end %>

, поэтому в основном так и происходит: все совпадения (обычно 5 ) отображаются одновременно, но скрыты. javascript делает первое скрытое значение FALSE при загрузке страницы таким образом, чтобы оно отображалось Затем выполняется отправка с помощью ajax (и все работает, за исключением обновления количества оставшихся совпадений, оно удаляет первое и заставляет второе прекрасно отображаться сверху)

Есть идеи?

строка, которую я пытаюсь изменить, расположена так:

<div class="wrapper-match">
<p id="matches-left">
</p>
lots of stuff
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...