Получить идентификатор переменную из html в jquery

#html #jquery #variables #click

#HTML #jquery #переменные #нажмите

Вопрос:

Как можно найти конкретную id переменную из html-элемента p в другой функции, чтобы избежать $(this).parent()…. без onclick(object.id ) или просто поиск id = comment-object (не уникальный)?

Я хочу нажать кнопку, чтобы отредактировать конкретный элемент p-tag, получив уникальный идентификатор.

 $(document).ready(function(){
 function renderCommentLine(object) {

        var htmlStart =
            "<div class='media cfe-media'>"   authorImage  
            "<div class='media-body'>"  
            author   "<small> vor "  
            timesince  
            "</small>"  
            "<p id='comment-object-"   object.id   "' class='media-content'   data-id='"   object.id   "'>"  
            object.content   "</p>"   "<small>"   '</div>'

       
        if (object.user) {
            if (object.user.username == authUsername) {
                htmlStart = htmlStart  
                    '<div class="dropdown">'  
                    '<button id="dropdown-button" data-toggle="dropdown">'  
                    '<span style="font-size: 3rem;" class="material-icons">more_vert</span>'  
                    '</button>'  

                    '<div class="dropdown-menu">'  
                    '<button class="media-edit" id="dropdown-item" type="button">'  
                    '<span style="font-size: 2.5rem;" class="material-icons">create</span>'  
                    'Bearbeiten</button></li>'  

                    '<button class="comment-delete" id="dropdown-item" type="button">'  
                    '<span style="font-size: 2.5rem;" class="material-icons">delete</span>'  
                    'Löschen</button></li>'  
                    '</div>'  
                    '</div>'
            }
        }
        var html_ = htmlStart   "</small></div></div>"
        return html_
    }
}}
    

    $(document).on('click', '.media-edit', function(e){ 
          e.preventDefault()
          var contentHolder = $(this).parent().parent().parent().parent().parent().find(".media-content")
        **//  var contentHolder = ("#comment-object"   object.id)**
          var contentTxt = contentHolder.text() 
          var objectId = contentHolder.attr('data-id') 
          contentHolder.replaceWith(generateEditForm(contentTxt, objectId))
        })
  

Комментарии:

1. Не видя html, который подключается, .media-edit и .media-content тогда трудно сказать вам, в чем проблема. Но я бы предположил, что это может иметь какое-то отношение ко всем .parent()

2. Опять же, структура вашего HTML является ключом к осмысленному ответу на ваш вопрос. Итак, у каждого p[id^="comment-object-"] есть своя кнопка? Каково расположение кнопок относительно p тегов?

3. Для каждого объекта-комментария есть кнопка, отображаемая, но с неуникальным идентификатором. Таким образом, процедура click должна обрабатывать редактирование комментария для объекта id comment- object.id . Может быть, есть шанс передать объект событию щелчка?

4. Решение заключалось в отправке object.id с помощью кнопки, чтобы использовать переменную для поиска идентификатора тега содержимого через $(«#comment-object-» id «»)