jquery - получить идентификатор ближайшего элемента? - PullRequest
0 голосов
/ 15 апреля 2020

Это мой код, который используется для редактирования ввода при нажатии на него, а затем сохранить в БД.


    $(document).ready(function() {
      $('.editable').on('click', function() {
          var that = $(this);
          if (that.find('input').length > 0) {
              return;
          }
          var currentText = that.text();
          var $input = $('<input>').val(currentText);
          $(this).append($input);

          // Handle outside click
          $(document).click(function(event) {
              if(!$(event.target).closest('.editable').length) {
                  if ($input.val()) {
                      that.text($input.val());

                      var div_id = $(this).closest('#commentbox').attr('id');
                      div_id = div_id.replace('comment-', '');
                      alert(div_id);
                      $.post( "updateComment.php", {id: div_id,message: $input.val()})
                  }
                  that.find('input').remove();
              }
          });
      });
    });

Var div_id не получает его вообще. И я хочу извлечь только номер из идентификатора из этого, однако это не работает. Я пробовал несколько решений, и это последнее не работает либо


    <div id="comments">
       <div class="commentbox" id="comment-90">...</div>
       <div class="commentbox" id="comment-91">...</div>
    </div>

1 Ответ

1 голос
/ 15 апреля 2020

Эта часть кода в основном представляет собой проблему:

var div_id = $(this).closest('#commentbox').attr('id');

Во-первых, вы пытаетесь получить ближайший элемент из document, так как this указывает на document в этой части вашего кода ( Вы имели в виду, вероятно, event.target вместо). Во-вторых, вы пытаетесь найти ближайший элемент с id == 'commentbox', поскольку именно это означает #<selector>. Для этой цели вам следует использовать какой-то другой атрибут - вероятно, лучше всего будет использовать какой-либо селектор класса, а затем использовать .attr('id').

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