Как динамически добавлять флажки в таблицу в javascript

У меня проблема с динамическим добавлением флажков в код javascript. У меня другой сценарий. Я получаю данные через ajax, поэтому мне нужно добавить таблицу в javascript, а не в html. Но теперь я хочу добавить флажки в свою рекламу. Действительно, я добавил их, но я не знаю, как проверить их все одним флажком. Я также пишу код для выбора всего, но это работает только тогда, когда мой текст находится в html. Ниже приведен мой код, и он даст вам четкое представление. Попробуйте прочитать его в редакторе, потому что он более сложный :)

//Джаваскрипт

$(document).ready(function() {

  $(document).ready(function() {
    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
      }
    });
  });

  $('select[name = "class_id"]').on('change', function() {
    var classID = $(this).val();
    if (classID) {

      $.ajax({

        url: '/attendance/ajax/' + classID,
        type: "GET",
        dataType: "json",
        success: function(data) {

          var markup = '';
          markup += '<tr><th style = "width: 2%" class = "align-middle text-center"><input type = "checkbox" id = "options"></th><th style = "width: 2%" class = "align-middle text-center">#</th> <th style = "width: 15%" class = "text-center">Student ID<input type = "text" class = "form-control" disabled></th> <th style = "width: 15%" class = "text-center">Student Name<input type = "text" class = "form-control" disabled></th> <th style = "width: 15%" class = "text-center">Attendance<input type = "text" class = "form-control" disabled></th> <th style = "width: 15%" class = "text-center">Date<input type = "text" class = "form-control" disabled></th> <th style = "width: 15%;" class = "align-middle text-center">Actions</th> <tr>';

          $.each(data, function(key, value) {

            markup += '<tr> <td><input class = "checkBoxes" type = "checkbox" name = "checkBoxArray[]"></td> <td><input type = "hidden" value = "' + value.id + '" name = "id[]">' + value.id + '</td> <td><input type = "hidden" value = "' + value.student_id + '" name = "student_id[]">' + value.student_id + '</td> <td><input type = "hidden" value = "' + value.first_name + '" name = "first_name[]"><input type = "hidden" value = "' + value.last_name + '" name = "last_name[]">' + value.first_name + ' ' + value.last_name + '<td><input type = "hidden" value = "' + value.attendance + '" name = "attendance[]">' + value.attendance + '</td>' + '<td><input type = "hidden" value = "' + value.created_at + '" name = "created_at[]">' + value.created_at + '</td>' + '<td style = " width=12%" class = "text-center"> <a><button title = "Edit" class = "btn btn-outline-primary"><span class = "fas fa-pencil-alt"></span></button></a> </td>' + '</td> <tr>';

          });
          $('table[id = "studentsData"]').html(markup);
        }
      });
    }
  });
});

//Для установки всех флажков

$(document).ready(function() {

  $('#options').click(function() {

    if (this.checked) {
      $('.checkBoxes').each(function() {
        this.checked = true;
      });
    } else {
      $('.checkBoxes').each(function() {
        this.checked = false;
      });
    }

  });

});
Поведение ключевого слова "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
0
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Проблема заключается в выполнении обработчиков событий для элементов DOM. Браузер отображает и выполняет код сверху вниз (в большинстве случаев). Это означает, что вы выполняете $('#options').click() до того, как добавите все флажки через запрос Ajax. Поэтому вы пытаетесь прикрепить обработчик событий к элементам, которых нет в данный момент времени. Чтобы заставить его работать, вы должны добавить прослушиватель событий к родительскому элементу.

$('table[id = "studentsData"]').on('click', '#options', function() {})

Источник: http://api.jquery.com/on/

Второй аргумент — это селектор, на который вы собираетесь нацеливаться.

Но позвольте мне прояснить еще одну вещь. У меня также есть что-то вроде поиска в таблице. Но теперь мой table thead находится в javscrpit, так что он тоже не может работать. Что я могу для этого сделать? Скажи мне, если хочешь увидеть какой-нибудь код

Hasnain Kahn 06.04.2019 19:09

Не могли бы вы открыть новый вопрос для этого с коротким примером кода и демонстрацией jsbin/jsfiddle/codepen. Я знаю, что это не отвечает на ваш конкретный вопрос, но если вы добавляете больше сложности, я бы поискал плагин/библиотеку, которая уже выполняет эту работу. Взгляните на следующее, если это может сработать для вас: DataTables: datatables.net tablesort: tristen.ca/tablesort/demo List.js: listjs.com/docs

marcobiedermann 06.04.2019 19:53

Хорошо, я собираюсь задать для этого новый вопрос и объяснить его, а затем дам вам ссылку для этого :)

Hasnain Kahn 06.04.2019 20:35
stackoverflow.com/questions/55557371/…
Hasnain Kahn 07.04.2019 11:18

Это ссылка. Пожалуйста, проверьте это

Hasnain Kahn 07.04.2019 11:18

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