Laravel – как создать свойство динамического идентификатора в кнопке для добавления элемента с помощью javascript, идентификатор задается путем прохождения через модальное окно

во-первых, я создал форму редактирования, используя модальное окно в laravel

Я использую 2 разных файла:

  1. содержит компонент кнопки для запуска формы редактирования
@include('employer.edit-form')
  <button data-modal-target = "modal-edit-{{$task->id}}" data-modal-toggle = "modal-edit-{{$task->id}}">
     <a  class = "fa-solid fa-pen-to-square fa-lg"></a>
  </button>
  1. модальное окно, которое показывает форму редактирования при нажатии кнопки
<div id = "modal-edit-{{$task->id}}" data-modal-backdrop = "static" tabindex = "-1" aria-hidden = "true">
  <!-- Task Title -->
  <input type = "text" id = "task_name" name = "task_name" value = {{$task->task_name}} required />
  <!-- Button to append element -->
  <button id = "{{$task->id}}" type = "button"> + Add Here</button>
  <div id = "example">appended text shows here</div>

Я уже передал идентификатор данных, чтобы показать каждый объект через свойства data-modal-target и data-modal-toggle. Он работает нормально, но проблема возникла, когда я попытался добавить элемент с помощью JavaScript.

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
  $(document).ready(function(){
     $("#{{$task->id}}").click(function(){
              $("#example").append(
                `<p>successfully added</p>`
                );
            });
        });
</script>

Элемент можно добавить только в 1-й объект, когда я попытался нажать кнопку «+ Добавить сюда» в другом объекте (который использует тот же модальный режим), добавленный элемент не появится, вместо этого он появится в 1-м объекте.

Когда я попытался изменить компонент кнопки на этот

<button data-modal-target = "modal-edit-{{$task->id===2}}" data-modal-toggle = "modal-edit-{{$task->id===2}}">

и изменил модальное окно на это

<div id = "modal-edit-{{$task->id===2}}" data-modal-backdrop = "static" tabindex = "-1" aria-hidden = "true">

и единственный модальный элемент, к которому можно добавить элемент, - это второй объект, поэтому я думаю, что проблема в том, как я передал идентификатор, потому что свойство id в кнопке превращает идентификатор в строковое значение. Но я все еще в замешательстве и стрессе

Кто-нибудь может мне помочь, пожалуйста, заранее спасибо

Есть ли на странице несколько элементов с id = "example"? Тогда это было бы неверно, id должны быть уникальными.

brombeer 01.06.2024 18:14

@brombeer, к сожалению, нет, идентификатор уже уникален

mimie 01.06.2024 18:17

Вы упомянули несколько объектов, все ли они используют ваш модальный код 2.? Если да, то у вас будет несколько <div id = "example">.

brombeer 01.06.2024 18:25

@brombeer да, все они используют одно и то же модальное окно, и когда я нажал кнопку «+ Добавить сюда» во втором, третьем и т. д., они появятся только в модальном окне, которое показано в первом объекте как несколько <div id = "example "> столько раз, сколько я нажимал кнопку

mimie 01.06.2024 18:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пропустив эту проблему и вернувшись к ее решению, я обнаружил, что #example (идентификатор элемента div, к которому вы хотите добавить элемент) также должен иметь уникальный идентификатор.

Поэтому вместо

  $(document).ready(function(){
     $("#{{$task->id}}").click(function(){
              $("#example").append(
                `<p>successfully added</p>`
                );
            });
        });

Замените #example на #example-{{$task->id}} следующим образом:

  $(document).ready(function(){
     $("#{{$task->id}}").click(function(){
              $("#example-{{$task->id}}").append(
                `<p>successfully added</p>`
                );
            });
        });

и не забудьте изменить идентификатор самого div

<div id = "example-{{$task->id}}">appended text shows here</div>

Другие вопросы по теме